玄机就在PatternLayout
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO" monitorInterval="30">
<Properties>
<!-- 输出路径 -->
<Property name="logpath">logs</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="[%d] [%p] [%c] [%L] - %m%n" />
</Console>
<RollingFile name="debug" fileName="${logpath}/debug/erp_debug.log"
filePattern="${logpath}/debug/erp_debug_%d{yyyy-MM-dd}.log">
<Filters>
<ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<PatternLayout>
<pattern>{"channel":"yy_service","message":"%m","level":"%p","dateTime":"%d{yyyy-MM-dd HH:mm:ss}","context":{"timeStamp":"%d{UNIX_MILLIS}","line":"[%c] [%L]"}}%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="50 MB"/>\
</Policies>
<DefaultRolloverStrategy max="30">
<Delete basePath="${logpath}/debug" maxDepth="1">
<IfFileName glob="erp_debug_*.log"/>
<IfLastModified age="15d"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<RollingFile name="info" fileName="${logpath}/info/erp_info.log"
filePattern="${logpath}/info/erp_info_%d{yyyy-MM-dd}.log">
<Filters>
<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<PatternLayout>
<pattern>{"channel":"yy_service","message":"%m","level":"%p","dateTime":"%d{yyyy-MM-dd HH:mm:ss}","context":{"timeStamp":"%d{UNIX_MILLIS}","line":"[%c] [%L]"}}%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="50 MB"/>\
</Policies>
<DefaultRolloverStrategy max="30">
<Delete basePath="${logpath}/info" maxDepth="1">
<IfFileName glob="erp_info_*.log"/>
<IfLastModified age="15d"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<RollingFile name="warn" fileName="${logpath}/warn/erp_warn.log"
filePattern="${logpath}/warn/erp_warn_%d{yyyy-MM-dd}.log">
<Filters>
<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<PatternLayout>
<pattern>{"channel":"yy_service","message":"%m","level":"%p","dateTime":"%d{yyyy-MM-dd HH:mm:ss}","context":{"timeStamp":"%d{UNIX_MILLIS}","line":"[%c] [%L]"}}%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="50 MB"/>\
</Policies>
<DefaultRolloverStrategy max="30">
<Delete basePath="${logpath}/warn" maxDepth="1">
<IfFileName glob="erp_warn_*.log"/>
<IfLastModified age="15d"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<RollingFile name="error" fileName="${logpath}/error/erp_error.log"
filePattern="${logpath}/error/erp_error_%d{yyyy-MM-dd}.log">
<Filters>
<ThresholdFilter level="fatal" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<PatternLayout>
<pattern>{"channel":"yy_service","message":"%m","level":"%p","dateTime":"%d{yyyy-MM-dd HH:mm:ss}","context":{"timeStamp":"%d{UNIX_MILLIS}","line":"[%c] [%L]"}}%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<!-- 每个文件最大50M -->
<SizeBasedTriggeringPolicy size="50 MB"/>\
</Policies>
<DefaultRolloverStrategy max="30">
<Delete basePath="${logpath}/error" maxDepth="1">
<IfFileName glob="erp_error_*.log"/>
<!-- 设置最大保存时间为15天-->
<IfLastModified age="15d"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<!--切换输出级别-->
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
<AppenderRef ref="debug"/>
<AppenderRef ref="info"/>
<AppenderRef ref="warn"/>
<AppenderRef ref="error"/>
</Root>
</Loggers>
</Configuration>
来源:CSDN
作者:兵蜀黍
链接:https://blog.csdn.net/BingShuShu/article/details/103888069