Log4j2 定期/定大小生成日志文件

来源:互联网 发布:html静态网页源码 编辑:程序博客网 时间:2024/06/05 19:09

Log4j2 对于生成日志文件时,可以通过对<File>中的<Policies>进行设置,来完整日志文件各种生成方案

定期生成日志文件
log4j2.xml
此时日志按天数产生,及每天产生一个新的日志文件,其中关键的地方在于 <RollingRandomAccessFile> filepattern属性和<TimeBasedTriggeringPolicy> 的设置;

<RollingRandomAccessFile > filepattern 中的日期格式精确位数决定了生成日志的日期单位,<TimeBasedTriggeringPolicy> interval 决定该单位下的间隔数,如果在上面例子中 interval 设置为 5,那么就是5天生成一个日志;

如果按月生成日志,那么 filePath 修改为 "${LOG_HOME}/app-%d{yyyy-MM}.log";
按小时生成日志,filePath = "${LOG_HOME}/app-%d{yyyy-MM-dd-HH-mm}.log";

上面例子中的 <DefaultRolloverStrategy max="20"/> 用于设置符合同个filePath的日志文件的最大数量,超过这个数量时,新产生的日志文件会覆盖旧的日志文件,没有设置时,默认值为7;

定大小生成日志文件

log4j2.xml
1
     <Configuration status="WARN" monitorInterval="300">  
2
        <properties>
3
            <property name="LOG_HOME">user/logs</property>
4
        </properties>
5
        
6
        <Appenders>  
7
            <RollingRandomAccessFile name="logfile" fileName="${LOG_HOME}/app.log"
8
                                     filePattern="${LOG_HOME}/error-%i.log">  
9
                <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />  
10
                <Policies>  
11
                    <SizeBasedTriggeringPolicy size="10 MB" />  
12
                </Policies> 
13
            </RollingRandomAccessFile>  
14
            <DefaultRolloverStrategy max="20"/>  
15
        </Appenders>  
16
        
17
        <Loggers>  
18
            <Root level="debug">  
19
                <AppenderRef ref="logfile" />  
20
            </Root>  
21
        </Loggers>  
22
    </Configuration>  
其中 <SizeBasedTriggeringPolicy size="10 MB" /> 用于设置单个日志文件的大小上限,<RollingRandomAccessFile> filepattern 中的 "%i" 输出文件的次序,<DefaultRolloverStrategy> 设置设置符合同个filePath的日志文件的最大数量;

原创粉丝点击