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>

results matching ""

    No results matching ""