logback配置文件-logback.xml的配置
<?xml version="1.0" encoding="UTF-8" ?> <configuration debug="true" scan="true" scanPeriod="30 seconds"> <!--等同于<configuration debug="true">--> <!-- Recommendation: place status listeners towards the the top of the configuration file --> <!-- <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener"/>--> <!--变量--> <!--日志的根目录,根据实际情况设置--> <property name="LOG_HOME" value="D:/IdeaProjects/logbackDemo/log"/> <!--控制台输出--> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- encoders are assigned by default the type ch.qos.logback.classic.encoder.PatternLayoutEncoder --> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>${LOG_HOME}/simple.log</file> <encoder> <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern> </encoder> </appender> <!-- RollingFileAppender: rollingPolicy://回滚策略 TimeBasedRollingPolicy FixedWindowRollingPolicy triggeringPolicy://触发策略 SizeBasedTriggeringPolicy --> <!--每天生产一个日志文件,保留30天的日志--> <appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/logfile.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!--每天生产一个日志文件,日志文件最大1MB,保留30天的日志--> <appender name="SIZE_BASED_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/log_size_based_file.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <!--默认值:10485760=10*2^20=10MB--> <!--日志文件最大1MB,超过1MB不记录--> <maxFileSize>1MB</maxFileSize> </triggeringPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!--固定生成日志文件数量,当日志文件大小达到20MB时压缩--> <appender name="FIXED_WINDOW_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/log_fixed_window_file.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <minIndex>1</minIndex> <maxIndex>10</maxIndex> <!-- 假设maxIndex为3,已生成文件数量达到maxIndex,文件名分别为log.1.zip,log.2.zip,log.3.zip 之后新生成的文件将覆盖log.1.zip, 再之后新生成的文件仍然覆盖log.1.zip,但是之前的log.1.zip将覆盖log.2.zip 再之后,又新生成了文件,那么log.2.zip将覆盖log.3.zip,log.1.zip覆盖log.2.zip,新文件覆盖log.1.zip --> <fileNamePattern>${LOG_HOME}/log_fixed_window_file.%i.log.zip</fileNamePattern> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <!--默认值:10485760=10*2^20=10MB--> <maxFileSize>20MB</maxFileSize> </triggeringPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!--<logger level="trace" name="com.example.logbackdemo.test.Test1"> <appender-ref ref="FIXED_WINDOW_FILE"/> </logger>--> <root level="info"> <appender-ref ref="STDOUT"/> <appender-ref ref="FIXED_WINDOW_FILE"/> </root> </configuration>
由logback配置文档可知:
配置文档最基本的结构

依次进行说明
configuration
1. debug
<configuration debug="true"></configuration>
等同于
<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener"/>
表示对logback的状态进行监听
2. scan
<configuration scan="true"></configuration>
配置文件自动扫描,默认每分钟扫描一次
需要注意的是:如果指定的扫描周期,周期的单位不加默认为毫秒
扫描周期单位:milliseconds, seconds, minutes, hours
<configuration scan="true" scanPeriod="30 seconds"></configuration>
appender
必填属性name和class
1. name
用于命名appender,在之后的logger中使用。
2.class
指定实现类的全称
3. appender下的结构

logger
必填属性:name
选填属性:level和additivity
1. name
logger作用的具体包名或具体类名
2. level
appender-ref ref="XXX"/
root
root实际就是一个特别的logger,他的name固定,就是根name,所以name属性不需要填。
懵懵懂懂迷迷糊糊

浙公网安备 33010602011771号