springboot logback日志配置-不同级别的日志放不同文件
一、自定义logback-spring.xml配置文件
logback-spring.xmllogback-spring.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!-- 日志输出路径 -->
<springProperty scope="context" name="log.path" source="log.path" defaultValue=""/>
<!-- 日志输出级别 -->
<springProperty scope="context" name="log.level" source="log.level" defaultValue=""/>
<!-- 文件输出格式 -->
<property name="PATTERN"
value="[%date{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger %line --%mdc{client} %msg%n"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="file-debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 文件路径 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名称 -->
<fileNamePattern>${log.path}/debug/%d{yyyy_MM_dd}-%i.log</fileNamePattern>
<!-- 文件最大保存历史数量 -->
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${PATTERN}</pattern>
</layout>
<encoder>
<pattern>${PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="file-info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 文件路径 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名称 -->
<fileNamePattern>${log.path}/info/%d{yyyy_MM_dd}-%i.log</fileNamePattern>
<!-- 文件最大保存历史数量 -->
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${PATTERN}</pattern>
</layout>
<encoder>
<pattern>${PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="file-warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 文件路径 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名称 -->
<fileNamePattern>${log.path}/warn/%d{yyyy_MM_dd}-%i.log</fileNamePattern>
<!-- 文件最大保存历史数量 -->
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${PATTERN}</pattern>
</layout>
<encoder>
<pattern>${PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="file-error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<!-- 文件路径 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名称 -->
<fileNamePattern>${log.path}/error/%d{yyyy_MM_dd}-%i.log</fileNamePattern>
<!-- 文件最大保存历史数量 -->
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${PATTERN}</pattern>
</layout>
<encoder>
<pattern>${PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 下面配置一些第三方包的日志过滤级别,用于避免刷屏 -->
<logger name="com.mchange" level="ERROR"/>
<logger name="org.mybatis" level="DEBUG"/>
<logger name="org.springframework" level="WARN"/>
<logger name="org.apache.zookeeper" level="INFO"/>
<logger name="java.sql.Connection" level="DEBUG"/>
<logger name="java.sql.ResultSet" level="DEBUG"/>
<logger name="java.sql.PreparedStatement" level="DEBUG"/>
<logger name="org.apache.http.wire" level="OFF"/>
<logger name="org.apache.commons" level="INFO"/>
<logger name="org.apache.catalina" level="ERROR"/>
<logger name="com.ulisesbocchio.jasyptspringboot" level="WARN"/>
<logger name="com.alibaba.nacos.client.naming" level="OFF"/>
<root level="${log.level}">
<appender-ref ref="STDOUT"/>
<appender-ref ref="file-debug"/>
<appender-ref ref="file-info"/>
<appender-ref ref="file-warn"/>
<appender-ref ref="file-error"/>
</root>
</configuration>
不同级别的日志由不同的appender
处理。
二、application.yml配置
日志的文件存放目录等日志级别在application.yml中配置
application.yml
log:
path: D:\data\log #日志输出路径
level: WARN # 输出日志的等级,TRACE < DEBUG < INFO < WARN < ERROR
三、onMatch和onMismatch属性说明
onMatch和onMismatch都有三个属性值,分别为Accept
、DENY
和NEUTRAL
。
分别介绍这两个配置项的三个属性值:
- onMatch=”ACCEPT” 表示匹配该级别及以上
- onMatch=”DENY” 表示不匹配该级别及以上
- onMatch=”NEUTRAL” 表示该级别及以上的,由下一个filter处理,如果当前是最后一个,则表示匹配该级别及以上
- onMismatch=”ACCEPT” 表示匹配该级别以下
- onMismatch=”NEUTRAL” 表示该级别及以下的,由下一个filter处理,如果当前是最后一个,则不匹配该级别以下的
- onMismatch=”DENY” 表示不匹配该级别以下的
评论区
请写下您的评论...
猜你喜欢
框架,springboot
1007
一、需求:二、logback-spring.xml配置文件详情三、application.yml中添加多环境配置四、测试配置是否成功五、配置不同级别的日志输出到不同文件一、需求:
使用
blog
日志log4j.properties配置
框架
2925
日志log4j.properties配置1.完整示例:##屏蔽com.mchange.v2包下面的debug,info,warn信息##log4j.logger.xxx=error意为屏蔽xxx包下
框架
2916
1.配置springboot支持websocketpackagecom.example.demo.websocket
java基础,springboot
1736
-user.target
这里要把ExecStart和Descriptino以及User改成自己的,把ExecStart指定到jar所在的目录,一样,也需要文件的绝对路径。同时别忘了设置myApp.service
框架
8115
多么痛的领悟~分离资源打包后运行项目,启动失败数据源初始化失败~检查问题,这种情况下没有打印错误日志,首先配置一下日志,将错误报告在控制台中打印出来。resources文件夹下创建一个
blog
mysql日志分析
数据库
1485
错误日志一般查询日志慢查询日志官方手册:https://dev.mysql.com/doc/refman/5.7/en/server-logs.html不管是哪个数据库产品,一定会有日志文件。在
linux系统
1602
配置nginx代理不同二级域名访问不同项目二级域名a,访问项目aserver{listen80;server_namea.jiajiajia.com;location
blog
日志log4j.xml配置
框架
2261
?xmlversion="1.0"encoding="UTF-8"?!DOCTYPElog4j:configurationPUBLIC"-//log4j/log4jConfiguration//EN""log4j.dtd"log4j:configuration!--输出到控制台--appendername="consoleAppender"class="org.apache.log4j.Conso
最新发表
归档
2018-11
12
2018-12
33
2019-01
28
2019-02
28
2019-03
32
2019-04
27
2019-05
33
2019-06
6
2019-07
12
2019-08
12
2019-09
21
2019-10
8
2019-11
15
2019-12
25
2020-01
9
2020-02
5
2020-03
16
2020-04
4
2020-06
1
2020-07
7
2020-08
13
2020-09
9
2020-10
5
2020-12
3
2021-01
1
2021-02
5
2021-03
7
2021-04
4
2021-05
4
2021-06
1
2021-07
7
2021-08
2
2021-09
8
2021-10
9
2021-11
16
2021-12
14
2022-01
7
2022-05
1
2022-08
3
2022-09
2
2022-10
2
2022-12
5
2023-01
3
2023-02
1
2023-03
4
2023-04
2
2023-06
3
2023-07
4
2023-08
1
2023-10
1
2024-02
1
2024-03
1
2024-04
1
2024-08
1
标签
算法基础
linux
前端
c++
数据结构
框架
数据库
计算机基础
储备知识
java基础
ASM
其他
深入理解java虚拟机
nginx
git
消息中间件
搜索
maven
redis
docker
dubbo
vue
导入导出
软件使用
idea插件
协议
无聊的知识
jenkins
springboot
mqtt协议
keepalived
minio
mysql
ensp
网络基础
xxl-job
rabbitmq
haproxy
srs
音视频
webrtc
javascript
加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。