全干货记录
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.13.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.13.3</version>
</dependency>
</dependencies>
两步映射
console按等级分颜色,文件中无颜色,文件按100MB切换,保留20个
<?xml version="1.0" encoding="UTF-8"?>
<Configuration strict="true" status="info" monitorInterval="30">
<Properties>
<property name="LOG_HOME">./</property>
<Property name="ERROR_LOG_FILE_NAME">server-error</Property>
<Property name="ERROR_LOG_FILE_ROTATE_SIZE">100 MB</Property>
<Property name="ERROR_LOG_FILE_MAX">20</Property>
<Property name="COMMON_LOG_FILE_NAME">server-common</Property>
<Property name="COMMON_LOG_FILE_ROTATE_SIZE">100 MB</Property>
<Property name="COMMON_LOG_FILE_MAX">20</Property>
<Property name="CONSOLE_PATTERLAYOUT">%d{yyyy-MM-dd HH:mm:ss} %highlight{%-5p %t %c{1} %L} - %m%n</Property>
<Property name="PATTERLAYOUT">%d{yyyy-MM-dd HH:mm:ss} %-5p %t %c{1} %L - %m%n</Property>
</Properties>
<Appenders>
<Appender name="console" type="console">
<Layout type="PatternLayout" pattern="${CONSOLE_PATTERLAYOUT}" />
<Filters>
<Filter type="ThresholdFilter" level="info" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
</Appender>
<Appender name="errorlog"
type="RollingRandomAccessFile"
fileName="${LOG_HOME}/${ERROR_LOG_FILE_NAME}.log"
filePattern="${LOG_HOME}/$${date:yyyy-MM}/${ERROR_LOG_FILE_NAME}-%d{yyyy-MM-dd HH-mm}-%i.log"
append="true">
<Layout type="PatternLayout" pattern="${PATTERLAYOUT}" />
<Filters>
<Filter type="ThresholdFilter" level="error" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
<Policies>
<SizeBasedTriggeringPolicy size="${ERROR_LOG_FILE_ROTATE_SIZE}" />
</Policies>
<DefaultRolloverStrategy max="${ERROR_LOG_FILE_MAX}" fileIndex="min" />
</Appender>
<Appender name="commonlog"
type="RollingRandomAccessFile"
fileName="${LOG_HOME}/${COMMON_LOG_FILE_NAME}.log"
filePattern="${LOG_HOME}/$${date:yyyy-MM}/${COMMON_LOG_FILE_NAME}-%d{yyyy-MM-dd HH-mm}-%i.log"
append="true">
<Layout type="PatternLayout" pattern="${PATTERLAYOUT}" />
<Filters>
<Filter type="ThresholdFilter" level="info" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
<Policies>
<SizeBasedTriggeringPolicy size="${COMMON_LOG_FILE_ROTATE_SIZE}" />
</Policies>
<DefaultRolloverStrategy max="${COMMON_LOG_FILE_MAX}" fileIndex="min" />
</Appender>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="console" />
<AppenderRef ref="errorlog" />
<AppenderRef ref="commonlog" />
</Root>
</Loggers>
</Configuration>
用一个root logger做入口,进入多个appender,在appender中分等级记录。 好处是root定一个级别,进去后可以灵活的使用多个级别。
基于文件大小切换
最多文件保留个数
文件切换后,命名规则
https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有