优点:生成 ERROR文件夹、WARN文件夹、INFO文件夹等等
缺点:没有压缩归档的日志
<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<configuration status="WARN">
<Properties>
<!-- 日志默认存放的位置 -->
<property name="basePath">logs</property>
<!-- 控制台打印和日志文件输出的日志最低级别 -->
<property name="minLogLevel">INFO</property>
<!-- Mapper路径,用于打印SQL到控制到 -->
<property name="mapperPath">com.dhl.digihub.common.mapper</property>
<!-- 日志默认切割的最小单位 -->
<property name="everyLogSize">100MB</property>
<!-- 同一文件夹下可以存放的日志天数 -->
<property name="maxLogDays">30d</property>
<!-- 同一文件夹下可以存放的日志数量,默认7个 -->
<property name="maxLogNumber">60</property>
<!-- 控制台默认输出格式 -->
<property name="consolePattern">%highlight{%d{yyyy-MM-dd HH:mm:ss.SSS} | %-5level | %t | %C.%M(%L) | %m}{DEBUG=BLUE, INFO=WHITE, WARN=YELLOW, ERROR=RED, FATAL=BG_RED}%n</property>
<!-- 日志文件默认输出格式 -->
<property name="logPattern">%d{yyyy-MM-dd HH:mm:ss.SSS} | %-5level | %t | %C.%M | %m%n</property>
</Properties>
<appenders>
<!-- 控制台打印配置 -->
<Console name="consolePrinting" target="SYSTEM_OUT">
<!-- 设置输出格式,默认为:%m%n -->
<PatternLayout pattern="${consolePattern}"/>
<!-- 控制台打印级别,level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
<ThresholdFilter level="${minLogLevel}" onMatch="ACCEPT" onMismatch="DENY"/>
</Console>
<!-- DEBUG级别日志保存配置 -->
<Rollingfile name="debugLog" filename="${basePath}/log-debug.log" filePattern="${basePath}/debug/log-debug-%d{yyyyMMdd}-%i.log">
<PatternLayout pattern="${logPattern}"/>
<Filters>
<ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<Policies>
<!-- 日志文件每天滚动一次 -->
<TimeBasedTriggeringPolicy interval="1"/>
<!-- 日志文件大于指定大小滚动一次 -->
<SizeBasedTriggeringPolicy size="${everyLogSize}"/>
<!-- 每天0点生成新的日志文件 -->
<CronTriggeringPolicy schedule="0 0 0 * * ?"/>
<!-- 同一个文件夹日志最大数量 -->
<DefaultRolloverStrategy max="${maxLogNumber}">
<!-- 日志保留策略 -->
<Delete basePath="${basePath}/debug/" maxDepth="1">
<IfFileName glob="log-debug-*.log"/>
<IfLastModified age="${maxLogDays}"/>
</Delete>
</DefaultRolloverStrategy>
</Policies>
</Rollingfile>
<!-- INFO级别日志保存配置 -->
<Rollingfile name="infoLog" filename="${basePath}/log-info.log" filePattern="${basePath}/info/log-info-%d{yyyyMMdd}-%i.log">
<PatternLayout pattern="${logPattern}"/>
<Filters>
<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<Policies>
<!-- 日志文件每天滚动一次 -->
<TimeBasedTriggeringPolicy interval="1"/>
<!-- 日志文件大于指定大小滚动一次 -->
<SizeBasedTriggeringPolicy size="${everyLogSize}"/>
<!-- 每天0点生成新的日志文件 -->
<CronTriggeringPolicy schedule="0 0 0 * * ?"/>
<!-- 同一个文件夹日志最大数量 -->
<DefaultRolloverStrategy max="${maxLogNumber}">
<!-- 日志保留策略 -->
<Delete basePath="${basePath}/info/" maxDepth="1">
<IfFileName glob="log-info-*.log"/>
<IfLastModified age="${maxLogDays}"/>
</Delete>
</DefaultRolloverStrategy>
</Policies>
</Rollingfile>
<!-- WARN级别日志保存配置 -->
<Rollingfile name="warnLog" filename="${basePath}/log-warn.log" filePattern="${basePath}/warn/log-warn-%d{yyyyMMdd}-%i.log">
<PatternLayout pattern="${logPattern}"/>
<Filters>
<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<Policies>
<!-- 日志文件每天滚动一次 -->
<TimeBasedTriggeringPolicy interval="1"/>
<!-- 日志文件大于指定大小滚动一次 -->
<SizeBasedTriggeringPolicy size="${everyLogSize}"/>
<!-- 每天0点生成新的日志文件 -->
<CronTriggeringPolicy schedule="0 0 0 * * ?"/>
<!-- 同一个文件夹日志最大数量 -->
<DefaultRolloverStrategy max="${maxLogNumber}">
<!-- 日志保留策略 -->
<Delete basePath="${basePath}/warn/" maxDepth="1">
<IfFileName glob="log-warn-*.log"/>
<IfLastModified age="${maxLogDays}"/>
</Delete>
</DefaultRolloverStrategy>
</Policies>
</Rollingfile>
<!-- ERROR级别日志保存配置 -->
<Rollingfile name="errorLog" filename="${basePath}/log-error.log" filePattern="${basePath}/error/log-error-%d{yyyyMMdd}-%i.log">
<PatternLayout pattern="${logPattern}"/>
<Filters>
<ThresholdFilter level="FATAL" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<Policies>
<!-- 日志文件每天滚动一次 -->
<TimeBasedTriggeringPolicy interval="1"/>
<!-- 日志文件大于指定大小滚动一次 -->
<SizeBasedTriggeringPolicy size="${everyLogSize}"/>
<!-- 每天0点生成新的日志文件 -->
<CronTriggeringPolicy schedule="0 0 0 * * ?"/>
<!-- 同一个文件夹日志最大数量 -->
<DefaultRolloverStrategy max="${maxLogNumber}">
<!-- 日志保留策略 -->
<Delete basePath="${basePath}/error/" maxDepth="1">
<IfFileName glob="log-error-*.log"/>
<IfLastModified age="${maxLogDays}"/>
</Delete>
</DefaultRolloverStrategy>
</Policies>
</Rollingfile>
</appenders>
<loggers>
<!-- 过滤掉spring和mybatis的一些无用的DEBUG信息 -->
<logger name="org.springframework" level="INFO"/>
<logger name="org.mybatis" level="INFO"/>
<!-- 设置对打印SQL语句的支持 -->
<logger additivity="false" name="${mapperPath}" level="warn">
<appender-ref ref="consolePrinting"/>
</logger>
<!-- 建立一个默认的root的logger -->
<root level="${minLogLevel}">
<appender-ref ref="consolePrinting"/>
<appender-ref ref="debugLog"/>
<appender-ref ref="infoLog"/>
<appender-ref ref="warnLog"/>
<appender-ref ref="errorLog"/>
</root>
</loggers>
</configuration>
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤