log4j2 RollingFile用法

一、按天记录日志,日志保留7天

        <RollingFile name="rollingFile" fileName="log/main.log" filePattern="log/$${date:yyyy-MM}/main-%d{yyyy-MM-dd}.log.gz">
            <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss}] [%-5p] %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
            </Policies>
            <DefaultRolloverStrategy>
                <Delete basePath="log" maxDepth="2">
                    <IfFileName glob="*/*.log.gz" />
                    <IfLastModified age="7d" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

二、按小时记录日志,日志保留6天

        <RollingFile name="rollingFile" fileName="log/main.log" filePattern="log/$${date:yyyy-MM}/main-%d{yyyy-MM-dd-HH}.log.gz">
            <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss}] [%-5p] %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
            </Policies>
            <DefaultRolloverStrategy>
                <Delete basePath="log" maxDepth="2">
                    <IfFileName glob="*/*.log.gz" />
                    <IfLastModified age="6d" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile> 

三、按大小记录日志,满20MB记录一个日志,日志保留7天;同一天最多生成10个20MB日志文件,由filePattern中的%i和DefaultRolloverStrategy中max的值决定

        <RollingFile name="rollingFile" fileName="log/main.log" filePattern="log/$${date:yyyy-MM}/main-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss}] [%-5p] %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="20 MB" />
            </Policies>
            <DefaultRolloverStrategy max="10">
                <Delete basePath="log" maxDepth="2">
                    <IfFileName glob="*/*.log.gz" />
                    <IfLastModified age="7d" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

关键点在于 filePattern后的日期格式,以及TimeBasedTriggeringPolicy的interval;日期格式精确到哪一位,interval也精确到哪一个单位
 

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" nmonitorInterval="30">
    <Appenders>
        <RollingFile name="rollingFile" fileName="log/main.log" filePattern="log/$${date:yyyy-MM}/main-%d{yyyy-MM-dd}.log.gz">
                <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss}] [%-5p] %l - %m%n"/>
                <Policies>
                    <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
                </Policies>
                <DefaultRolloverStrategy>
                    <Delete basePath="log" maxDepth="2">
                        <IfFileName glob="*/*.log.gz" />
                        <IfLastModified age="7d" />
                    </Delete>
                </DefaultRolloverStrategy>
            </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="rollingFile"/>
        </Root>
    </Loggers>
</Configuration>

官方参考文档:https://logging.apache.org/log4j/2.x/manual/appenders.html

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值