[英]Rolling log4j file to specific name
在特殊的應用程序事件中,我需要滾動日志文件並重命名為包含日期和時間的特定文件名。
這是我用來滾動文件的功能:
public void rollOver()
{
Enumeration el= Logger.getRootLogger().getAllAppenders();
while ( el.hasMoreElements() )
{
Appender a = (Appender) el.nextElement();
if (a instanceof RollingFileAppender)
{
((RollingFileAppender) a).rollOver();
}
}
}
這是log4j.properties配置:
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=mylog.log
log4j.appender.logfile.Threshold=ALL
log4j.appender.logfile.MaxFileSize=100MB
log4j.appender.logfile.MaxBackupIndex=4
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %-4r [%t] %-5p %c %x - %m%n
當前,在rollOver
之后,我有一個名為mylog.log.1
文件。 如何使文件具有mylog_YYYMMDD_HHmmSS.log
類的mylog_YYYMMDD_HHmmSS.log
?
使用DailyRollingFileAppender
而不是RollingFileAppender
。 有關如何配置它的詳細信息,請參見此問題: 設置日志文件名以在Log4j中包括當前日期
根據要求
# Log levels
log4j.rootLogger=DEBUG,CONSOLE,R
# Appender Configuration
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
# Pattern to output the caller's file name and line number
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.R.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.R.RollingPolicy.FileNamePattern=./logs/file_%d{yyyy-MM-dd}.log
# Layout for Rolling File Appender
#log4j.appender.R.DatePattern='.'yyyy-MM-dd-HH'.log'
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d - %c - %p - %m%n
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.