1.6 log4j2.xml
1.6.1 配置详述
Dble中的整体配置和一般java项目的log4j2.xml没有什么区别
1.6.1.1 日志滚动删除配置
日志滚动删除是通过DefaultRolloverStrategy的配置对于RollingRandomAccessFile的RolloverStrategy内容进行重载
<DefaultRolloverStrategy max="100">
<Delete basePath="logs" maxDepth="2">
<IfFileName glob="*/dble-*.log.gz">
<IfLastModified age="2d">
<IfAny>
<IfAccumulatedFileSize exceeds="1 GB" />
<IfAccumulatedFileCount exceeds="10" />
</IfAny>
</IfLastModified>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
上例中参数说明如下:
basePath:基准路径,日志的统计归类和删除会在此目录下进行
maxDepth : 最大路径深度,在basePath路径下maxDepth深度的日志文件都会被扫描,譬如.../logs/2018-01-01 .../logs/2018-01-02 此类路径也都会被扫描和统计
glob : 日志格式,在所有扫描到的文件中符合此命名规范的文件都被认为是日志文件
age : 举例最后一次修改文件的时间,只有修改时间超过限值的文件才会被考虑删除
IfAccumulatedFileSize :触发文件大小,符合上述条件的文件大小总量达到触发值则触发清理
IfAccumulatedFileCount : 触发文件数量,符合上述条件的文件数量达到触发值则触发清理
例子详述:在此例中代表会监控logs目录下2层目录深度内所有命名符合"/dble-.log.gz"并且最后修改时间已经超出2天的文件,当有符合上述条件的文件大小到达1 GB或者文件数量到达10的时候会触发清理
1.6.2 配置实例
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" packages="com.actiontech.dble.log">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d [%-5p][%t] %m %throwable{full} (%C:%F:%L) %n"/>
</Console>
<RollingRandomAccessFile name="RollingFile" fileName="logs/dble.log"
filePattern="logs/$${date:yyyy-MM}/dble-%d{MM-dd}-%i.log.gz">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p [%t] (%l) - %m%n</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="250 MB"/>
<TimeBasedTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy max="100">
<Delete basePath="logs" maxDepth="2">
<IfFileName glob="*/dble-*.log.gz">
<IfLastModified age="2d">
<IfAny>
<IfAccumulatedFileSize exceeds="1 GB" />
<IfAccumulatedFileCount exceeds="10" />
</IfAny>
</IfLastModified>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingRandomAccessFile>
<RollingFile name="ThreadChecker" fileName="logs/thread.log"
filePattern="logs/$${date:yyyy-MM}/thread-%d{MM-dd}-%i.log.gz">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p [%t] (%l) - %m%n</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="250 MB"/>
<TimeBasedTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="ThreadChecker" additivity="false" includeLocation="false">
<AppenderRef ref="ThreadChecker"/>
</Logger>
<asyncRoot level="debug" includeLocation="true">
<AppenderRef ref="Console"/>
<AppenderRef ref="RollingFile"/>
</asyncRoot>
</Loggers>
</Configuration>