log4j2怎么定時(shí)生成文件

小億
228
2023-12-09 11:47:34
欄目: 編程語言

在log4j2中,可以使用RollingFileAppender來定時(shí)生成文件。以下是一個(gè)示例配置文件,其中每天生成一個(gè)新的日志文件:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <RollingFile name="RollingFile" fileName="logs/app.log"
                     filePattern="logs/app-%d{yyyy-MM-dd}.log">
            <PatternLayout pattern="%d [%t] %-5p %c{1}:%L - %m%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
            </Policies>
            <DefaultRolloverStrategy max="10" />
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="RollingFile" />
        </Root>
    </Loggers>
</Configuration>

在上面的配置文件中,<RollingFile>指定了日志文件的名稱和文件模式。使用%d{yyyy-MM-dd}模式可以將日志文件名設(shè)置為每天一個(gè)新文件。<Policies>部分指定了觸發(fā)滾動(dòng)的策略,這里使用了<TimeBasedTriggeringPolicy>來按時(shí)間觸發(fā)滾動(dòng)。<DefaultRolloverStrategy>指定了滾動(dòng)策略,默認(rèn)最多保留10個(gè)日志文件。

在你的項(xiàng)目中,將上述配置文件保存為log4j2.xml,并將其放置在類路徑下。然后,在代碼中初始化log4j2,即可開始按照配置的時(shí)間間隔生成日志文件。

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class MyApp {
    private static final Logger logger = LogManager.getLogger(MyApp.class);
    
    public static void main(String[] args) {
        logger.info("Hello, World!");
    }
}

以上代碼將在logs目錄下生成每天一個(gè)新的日志文件,例如app-2022-01-01.log、app-2022-01-02.log等。每個(gè)日志文件中將記錄應(yīng)用程序的日志信息。

注意:在使用log4j2之前,需要確保已正確配置log4j2依賴項(xiàng),并在項(xiàng)目的pom.xmlbuild.gradle文件中添加相應(yīng)的依賴。

0