日志记录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:运行项目,就可以看在指定的路径下生成了分类存储日志的文件