logback配置文件-logback.xml的配置
<?xml version="1.0" encoding="UTF-8" ?> <configuration debug="true" scan="true" scanPeriod="30 seconds"> <property name="LOG_HOME" value="D:/IdeaProjects/logbackDemo/log"/> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%npattern> encoder> appender> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>${LOG_HOME}/simple.logfile> <encoder> <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%npattern> encoder> appender> <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}.logfileNamePattern> <maxHistory>30maxHistory> rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%npattern> encoder> appender> <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}.logfileNamePattern> <maxHistory>30maxHistory> rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>1MBmaxFileSize> triggeringPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%npattern> encoder> appender> <appender name="FIXED_WINDOW_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/log_fixed_window_file.logfile> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <minIndex>1minIndex> <maxIndex>10maxIndex> <fileNamePattern>${LOG_HOME}/log_fixed_window_file.%i.log.zipfileNamePattern> rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>20MBmaxFileSize> triggeringPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%npattern> encoder> appender> <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属性不需要填。