我是靠谱客的博主 勤劳小蝴蝶,这篇文章主要介绍springboot整合日志(二)----------logback( log4j2调整为logback ),现在分享给大家,希望可以做个参考。

springboot的日志框架别的博客上说的也比较多,很多都可用。但是我这里是有一些特殊的项目经历,值得一说。
原本项目中使用的log4j2,也就是上一篇 springboot整合日志(一)----------log4j2 中讲的。结果由于要部署到京东云上,他们的日志收集系统要求用logback的控制台输出日志。通过控制台就能收集到日志,并声称日志文件。所以我们的项目就要改造成logback的日志系统。
然后发现稍微调整log4j2的日志配置就能实现logback控制台输出。调整如下:
1.pom.xml中的日志依赖改为logback。
在这里插入图片描述
2. 删除掉resource文件下的log4j2的日志配置。
在这里插入图片描述
3.在yml文件中删除掉对应日志文件的引入即可。即下面这行去掉

复制代码
1
2
3
logging: config: classpath:log4j2.xml

4.在类上加上lomback的注解不变。即可在方法上引入日志。
在这里插入图片描述
在这里插入图片描述
5.启动项目,即可发现日志已经生效。打印出彩色日志在控制台。满足了要求。
但是,等部署到测试环境,要去看日志文件时,发现,这个日志配置虽然满足了生产环境的要求,却不满足测试环境输出日志文件的需求。还是要加上配置文件,给出控制台打印或者日志打印的日志输出模式。实际经过上面的修改后。logback的日志框架引入什么都没有了只剩下一个@Slf4j这样一个类上面的注解。只要注解在,加上log.info语句,就能打印出日志。我们需要引入logback的日志配置。来实现可控制台,可日志文件的形式。所以完整的配置还要有下面两步:

a. logback引入配置文件:logback-spring到resource目录。日志文件分为error和info两个目录。分别存储错误日志和正常打印日志

在这里插入图片描述

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <contextName>LOGBACK</contextName> <property name="LOG.INFO.PATH" value="/info/logs"/> <property name="LOG.ERROR.PATH" value="/error/logs"/> <Property name="PROJECT_NAME" value="user-center"/> <property name="PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger - %msg%n"></property> <property name="MAX_HISTORY" value="15"></property> <property name="MAX_FILE_SIZE" value="150MB"/> <property name="TOTAL_SIZE_CAP" value="10GB"></property> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>debug</level> </filter> <encoder> <pattern>${PATTERN}</pattern> <charset>UTF-8</charset> </encoder> </appender> <appender name="INFO-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG.INFO.PATH}/${PROJECT_NAME}/${PROJECT_NAME}.info.log</file> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG.INFO.PATH}/${PROJECT_NAME}/${PROJECT_NAME}.info.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>${MAX_HISTORY}</maxHistory> <totalSizeCap>${TOTAL_SIZE_CAP}</totalSizeCap> </rollingPolicy> <encoder> <pattern>${PATTERN}</pattern> <charset>UTF-8</charset> </encoder> </appender> <appender name="ERROR-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG.ERROR.PATH}/${PROJECT_NAME}/${PROJECT_NAME}.error.log</file> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG.ERROR.PATH}/${PROJECT_NAME}/${PROJECT_NAME}.error.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>${MAX_HISTORY}</maxHistory> <totalSizeCap>${TOTAL_SIZE_CAP}</totalSizeCap> </rollingPolicy> <encoder> <pattern>${PATTERN}</pattern> <charset>UTF-8</charset> </encoder> </appender> <!--指定特定路径下的日志输出为debug模式。这里是指定持久层操作打印出sql--> <logger name="com.zhanglf.catalog.dao" level="debug"></logger> <!--指定不同环境dev、test、prod下的日志输出方式--> <springProfile name="dev"> <root level="info"> <appender-ref ref="CONSOLE"/> <appender-ref ref="INFO-APPENDER"/> <appender-ref ref="ERROR-APPENDER"/> </root> </springProfile> <springProfile name="test"> <root level="info"> <appender-ref ref="CONSOLE"/> <appender-ref ref="INFO-APPENDER"/> <appender-ref ref="ERROR-APPENDER"/> </root> </springProfile> <!--指定prod下的日志输出方式为控制台输出--> <springProfile name="prod"> <root level="info"> <appender-ref ref="CONSOLE"/> </root> </springProfile> </configuration>

b.在yml文件中引入日志配置

复制代码
1
2
3
logging: config: classpath:logback-spring.xml

最后

以上就是勤劳小蝴蝶最近收集整理的关于springboot整合日志(二)----------logback( log4j2调整为logback )的全部内容,更多相关springboot整合日志(二)----------logback(内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(118)

评论列表共有 0 条评论

立即
投稿
返回
顶部