<xmlversion="1.0"encoding="UTF-8">
<!-- debug=false启动时不打印logback信息 -->
<!-- scanPeriod为动态加载配置文件的时间间隔 -->
<configurationscan="true"scanPeriod="180 seconds">
<!-- 日志级别,按日志输出内容多少排序 -->
<!-- TRACE > DEBUG > INFO > WARN > ERROR -->
<!-- ===============静态变量=============== -->
<!-- 工程名 -->
<propertyname="project.name"value="TestWithMaven"/>
<!-- 日志文件输出目录 -->
<propertyname="log.base.path"value="logs"/>
<!-- 日志文件附加策略 -->
<propertyname="log.appender.append"value="true"/>
<!-- 多JVM往同一文件写策略 -->
<propertyname="log.appender.prudent"value="true"/>
<!-- 日志文件字符集 -->
<propertyname="log.charset"value="UTF-8"/>
<!-- 日志格式:2017-09-18 17:07:44.108 [ERROR] [main] log.b.LogB:15 - Error:
debuging in class Log B -->
<propertyname="log.format"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%thread] %logger{200}.%method:%line - %msg %n"/>
<!-- 滚动日志每个文件大小 -->
<propertyname="rolling.log.max.file.size"value="100KB"/>
<!-- 滚动日志保留天数 -->
<propertyname="rolling.log.max.history"value="90"/>
<!-- 滚动日志总大小 -->
<propertyname="rolling.log.total.size.cap"value="20GB"/>
<!-- 滚动日志名称 -->
<propertyname="rolling.log.file.name"value="${log.base.path}/${project.name}-rolling"/>
<!-- 窗口滚动日志文件起始值 -->
<propertyname="window.rolling.log.min.index"value="1"/>
<!-- 窗口滚动日志文件起始值 -->
<propertyname="window.rolling.log.max.index"value="10"/>
<!-- 窗口滚动日志每个文件大小 -->
<propertyname="window.rolling.log.max.file.size"value="100KB"/>
<!-- 窗口滚动日志名称 -->
<propertyname="window.rolling.log.file.name"value="${log.base.path}/${project.name}-window"/>
<!-- ===============Appender配置=============== -->
<!-- 控制台输出 -->
<appendername="STDOUT"class="ch.qos.logback.core.ConsoleAppender">
<target>System.out</target>
<encoder>
<pattern>${log.format}</pattern>
<charset>${log.charset}</charset>
</encoder>
</appender>
<!-- 文件输出 -->
<!-- <appender name="FILE" class="ch.qos.logback.core.FileAppender">
<append>${log.appender.append}</append>
<prudent>${log.appender.prudent}</prudent>
<file>${log.base.path}/${project.name}-file.log</file>
<encoder>
<pattern>${log.format}</pattern>
<charset>${log.charset}</charset>
</encoder>
</appender> -->
<!-- 基于时间的回滚文件输出 -->
<appendername="ROLLING"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<append>${log.appender.append}</append>
<prudent>${log.appender.prudent}</prudent>
<File>${rolling.log.file.name}.log</File>
<rollingPolicyclass="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${rolling.log.file.name}-%d{yyyy-MM-dd}.log
</fileNamePattern>
<maxFileSize>${rolling.log.max.file.size}</maxFileSize>
<maxHistory>${rolling.log.max.history}</maxHistory>
<totalSizeCap>${rolling.log.total.size.cap}</totalSizeCap>
</rollingPolicy>
<!-- 必须指定,否则不会往文件输出内容 -->
<encoder>
<pattern>${log.format}</pattern>
<charset>${log.charset}</charset>
</encoder>
</appender>
<!-- 基于窗口的回滚文件输出 -->
<appendername="WINDOW"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<append>${log.appender.append}</append>
<File>${window.rolling.log.file.name}.log</File>
<rollingPolicyclass="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${window.rolling.log.file.name}-%i.log.zip</fileNamePattern>
<minIndex>${window.rolling.log.min.index}</minIndex>
<maxIndex>${window.rolling.log.max.index}</maxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>${window.rolling.log.max.file.size}</maxFileSize>
</triggeringPolicy>
<!-- 必须指定,否则不会往文件输出内容 -->
<encoder>
<pattern>${log.format}</pattern>
<charset>${log.charset}</charset>
</encoder>
</appender>
<!-- ===============Logger配置=============== -->
<!-- 所有logger的始祖是ROOT,默认会继承ROOT的配置,因此在其他logger中的日志会打印两次。 解决:logger的additivity属性设置为false -->
<loggername="log.a"additivity="false">
<levelvalue="TRACE"/>
<appender-refref="STDOUT"/>
</logger>
<loggername="log.b"additivity="false">
<levelvalue="DEBUG"/>
<appender-refref="STDOUT"/>
<appender-refref="ROLLING"/>
</logger>
<loggername="log.c"additivity="false">
<levelvalue="DEBUG"/>
<appender-refref="WINDOW"/>
</logger>
<rootlevel="DEBUG">
<appender-refref="STDOUT"/>
<appender-refref="WINDOW"/>
</root>
</configuration>
|