目录
版本
ch.qos.logback:logback-classic:1.2.3
ch.qos.logback:logback-core:1.2.3
配置:
yml 里面的配置:
#日志输出配置
logging:
config: classpath:log4j2-spring.xml
file:
path: .
在rsources目录下生成一个xml文件:log4j2-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<contextName>lxw</contextName>
<!--输出到控制台-->
<appender name="console1" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<encoder>
<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--如果只是想要 Info 级别的日志,只是过滤 info 还是会输出 Error 日志,因为 Error 的级别高,
所以我们使用下面的策略,可以避免输出 Error 的日志-->
<!-- <filter class="ch.qos.logback.classic.filter.LevelFilter">
<!–过滤 Error–>
<level>ERROR</level>
<!–匹配到就禁止–>
<onMatch>DENY</onMatch>
<!–没有匹配到就允许–>
<onMismatch>ACCEPT</onMismatch>
</filter>-->
<!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则
如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天
的日志改名为今天的日期。即,<File> 的日志都是当天的。
-->
<File>logs/name_tmp.log</File>
<!--滚动策略,按照时间滚动 TimeBasedRollingPolicy-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
<FileNamePattern>logs/name.%d{yyyy-MM-dd}.log</FileNamePattern>
<!-- 按分钟生成日志 【手动狗头】 -->
<!--<FileNamePattern>logs/name.%d{yyyy-MM-dd_HH_mm}.log</FileNamePattern>-->
<!--只保留最近90天的日志-->
<maxHistory>60</maxHistory>
<!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
<!--<totalSizeCap>1GB</totalSizeCap>-->
</rollingPolicy>
<!--日志输出编码格式化-->
<encoder>
<charset>UTF-8</charset>
<pattern>%d [%thread] %-5level %logger{36} %line - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="console1"/>
<appender-ref ref="logFile"/>
</root>
</configuration>
遇到的坑
1. <root>标签需要放到最后面,否则会提示异常,提示
Did you define it below instead of above in the configuration file?
[您是否在配置文件中在下面而不是上面定义了它?]
2.我目前的项目版本发现不支持<Properties>这个标签,
一开始显示错误:
logback在SpringBoot下出现no applicable action for [appender], current ElementPath is [[configuration]
后来xm的子标签,一个个去掉尝试才发现,,,
,没找到原因,估计是版本不支持,所以变量提取这块,也就不设置了,也不是很麻烦。
3.设置成每分钟生成一个配置文件,如下:<FileNamePattern>logs/cityInsuredMonitorReport.%d{yyyy-MM-dd_HH_mm}.log</FileNamePattern>
其实就是配置文件里面的日期格式往后继续写,即可,类推,一个小时一个文件,也是这样。
效果
因为一天一个文件,没法测试,可以修改成一分钟一个文件,测试生成效果,如下图,如果某个分钟内没有日志,那么就不会有日志文件。
日志学习
如果想具体学习这块知识可以参考这个大佬的博客:
https://www.cnblogs.com/bigben0123/p/7895696.html
参考博客:
https://www.cnblogs.com/bigben0123/p/7895696.html
https://blog.youkuaiyun.com/wu_qing_song/article/details/112539178
本文介绍了在Spring Boot项目中使用Logback进行日志配置的详细步骤,包括版本选择、配置文件详解、遇到的常见问题如标签位置和不支持的标签,以及如何通过调整日志滚动策略实现分钟级文件生成。还推荐了相关学习资源。

2976

被折叠的 条评论
为什么被折叠?



