在log4j2中,可以使用RollingFileAppender來定時生成文件。以下是一個示例配置文件,其中每天生成一個新的日志文件:
<?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}
模式可以將日志文件名設置為每天一個新文件。<Policies>
部分指定了觸發滾動的策略,這里使用了<TimeBasedTriggeringPolicy>
來按時間觸發滾動。<DefaultRolloverStrategy>
指定了滾動策略,默認最多保留10個日志文件。
在你的項目中,將上述配置文件保存為log4j2.xml
,并將其放置在類路徑下。然后,在代碼中初始化log4j2,即可開始按照配置的時間間隔生成日志文件。
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
目錄下生成每天一個新的日志文件,例如app-2022-01-01.log
、app-2022-01-02.log
等。每個日志文件中將記錄應用程序的日志信息。
注意:在使用log4j2之前,需要確保已正確配置log4j2依賴項,并在項目的pom.xml
或build.gradle
文件中添加相應的依賴。