加载中...

日志记录2--使用配置文件logback-spring.xml记录日志

这种方式适合项目正式运行的时候使用,可以对日志进行详细设置

实现步骤如下:

步骤1:在resources目录下引入文件logback-spring.xml,文件必须是这个名,不然springBoot框架识别不了。

 

步骤2:以下是logback-spring.xml文件的详细内容,引入文件后就可以运行了

 

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <configuration>
 3     <contextName>community</contextName><!-- 这与application.properties中的server.servlet.context-path=/community保持一致 -->
 4     <property name="LOG_PATH" value="d:/work/data"/><!-- 设置保存日志数据的目录 -->
 5     <property name="APPDIR" value="community"/><!-- 一个服务器有多个项目,不同的项目存放日志的目录不同 -->
 6 
 7     <!-- error file :存放error类日志的目录-->
 8     <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
 9         <file>${LOG_PATH}/${APPDIR}/log_error.log</file><!-- 具体的日志文件路径-->
10         <!-- rollingPolicy 滚动策略:规定文件的大小、保存时间等特性 -->
11         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
12             <fileNamePattern>${LOG_PATH}/${APPDIR}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- 新建文件的命名规则,每次显示事件,并且数字加1,%d{yyyy-MM-dd}.%i-->
13             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
14                 <maxFileSize>5MB</maxFileSize> <!-- 达到5MB就新建一个文件-->
15             </timeBasedFileNamingAndTriggeringPolicy>
16             <maxHistory>30</maxHistory> <!-- 保存时间为30天-->
17         </rollingPolicy>
18 
19         <append>true</append> <!-- 以追加的形式记录日志,而不是覆盖,这是合理的-->
20 
21         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
22             <pattern>%d %level [%thread] %logger{10} [%file:%line] %msg%n</pattern> <!-- 打印日志的格式-->
23             <!-- %d:时间, %level:日志级别,%thread]:执行的线程,%logger{10}:日志所属的类,哪个类在执行,[%file:%line]:具体的文件与行数,%msg%n:日志的提示信息       -->
24             <charset>utf-8</charset><!-- 字符集,utf-8,支持中文-->
25         </encoder>
26 
27         <filter class="ch.qos.logback.classic.filter.LevelFilter">
28             <level>error</level><!-- 匹配error级别的日志-->
29             <onMatch>ACCEPT</onMatch><!-- 匹配就接收-->
30             <onMismatch>DENY</onMismatch><!-- 不匹配就拒绝-->
31         </filter>
32     </appender>
33 
34     <!-- warn file -->
35     <appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
36         <file>${LOG_PATH}/${APPDIR}/log_warn.log</file>
37         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
38             <fileNamePattern>${LOG_PATH}/${APPDIR}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
39             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
40                 <maxFileSize>5MB</maxFileSize>
41             </timeBasedFileNamingAndTriggeringPolicy>
42             <maxHistory>30</maxHistory>
43         </rollingPolicy>
44         <append>true</append>
45         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
46             <pattern>%d %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
47             <charset>utf-8</charset>
48         </encoder>
49         <filter class="ch.qos.logback.classic.filter.LevelFilter">
50             <level>warn</level>
51             <onMatch>ACCEPT</onMatch>
52             <onMismatch>DENY</onMismatch>
53         </filter>
54     </appender>
55 
56     <!-- info file -->
57     <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
58         <file>${LOG_PATH}/${APPDIR}/log_info.log</file>
59         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
60             <fileNamePattern>${LOG_PATH}/${APPDIR}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
61             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
62                 <maxFileSize>5MB</maxFileSize>
63             </timeBasedFileNamingAndTriggeringPolicy>
64             <maxHistory>30</maxHistory>
65         </rollingPolicy>
66         <append>true</append>
67         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
68             <pattern>%d %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
69             <charset>utf-8</charset>
70         </encoder>
71         <filter class="ch.qos.logback.classic.filter.LevelFilter">
72             <level>info</level>
73             <onMatch>ACCEPT</onMatch>
74             <onMismatch>DENY</onMismatch>
75         </filter>
76     </appender>
77 
78     <!-- console 在控制台打印的日志-->
79     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
80         <encoder>
81             <pattern>%d %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
82             <charset>utf-8</charset>
83         </encoder>
84         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
85             <level>debug</level><!-- 可以修改级别-->
86         </filter>
87     </appender>
88 
89     <logger name="com.xy" level="debug"/><!-- 指定某一个包的日志级别-->
90 
91     <root level="info"><!-- 指定整个项目的日志级别-->
92         <appender-ref ref="FILE_ERROR"/>
93         <appender-ref ref="FILE_WARN"/>
94         <appender-ref ref="FILE_INFO"/>
95         <appender-ref ref="STDOUT"/>
96     </root>
97 
98 </configuration>

步骤3:运行项目,就可以看在指定的路径下生成了分类存储日志的文件

 

posted @ 2022-02-18 22:08  甜甜筒  阅读(536)  评论(0编辑  收藏  举报