log4j配置文件详解

2023-05-05  本文已影响0人  小名源治

log4j2中文官方文档
log4j2官方文档

<Console name="Console" target="SYSTEM_OUT">
            <PatternLayout charset="UTF-8" pattern="%highlight{%d [%thread] [%X{traceId}] [%-5p]%c{1} (%L) %m%n}{FATAL=Bright Red, ERROR=Bright Magenta, WARN=Bright Yellow, INFO=Bright Green, DEBUG=Bright Cyan, TRACE=Bright White}" />
        </Console>
<RollingRandomAccessFile name="InfoLog"  append="true" fileName="${logdir}/info.log" filePattern="${logdir}/info.%d{yyyy-MM-dd}.log.%i">
   <Filters>
      <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY" />
   </Filters>
   <PatternLayout charset="UTF-8">
      <Pattern>%d [%thread] [%X{traceId}] [%-5p]%C{1}(%L) %m{nolookups}%xThrowable{separator(|)}%n</Pattern>
   </PatternLayout>
   <SizeBasedTriggeringPolicy size="200MB" />
   <DefaultRolloverStrategy max="50">
                <Delete basePath="${logdir}" maxDepth="2">
                    <IfFileName glob="*.log"/>
                    <IfLastModified age="3D"/>
                </Delete>
            </DefaultRolloverStrategy>
</RollingRandomAccessFile>

PatternLayout参数
charset ##指定字符集
pattern ##指定格式
alwaysWriteExceptions ##默认为true,输出异常
header ##可选项。包含在每个日志文件的顶部
footer ##可选项。包含在每个日志文件的尾部。

RollingRandomAccessFile基本属性
name:Appender名称
immediateFlush:log4j2接收到日志事件时,是否立即将日志刷到磁盘。默认为true。
fileName:日志存储路径
filePattern:历史日志封存路径。其中%d{yyyyMMddHH}表示了封存历史日志的时间单位(目前单位为小时,yyyy表示年,MM表示月,dd表示天,HH表示小时,mm表示分钟,ss表示秒,SS表示毫秒)。注意后缀,log4j2自动识别zip等后缀,表示历史日志需要压缩。

SizeBasedTriggeringPolicy的功能:
观察当前活动文件的大小
当已经大于了指定的值,它会给 RollingFileAppender 发一个信号触发对当前活动文件的轮转

DefaultRolloverStrategy指定了当触发rollover时的默认策略。
max参数指定了计数器的最大值。一旦计数器达到了最大值,过旧的文件将被删除。

Delete属性
(Delete标签是从Log4j 2.7版本开始引入的,注意它可以删除任何文件,而不仅仅是删除日志文件)
basePath :它删除指定目录下的文件
maxDepth:最大子目录深度
IfFileName:删除指定文件名的文件
IfLastModified:删除某个日期前的文件(单位有S:秒,M:分钟,H:小时,D:天,W:周)

上一篇下一篇

猜你喜欢

热点阅读