Java 将log4j文件滚动到特定名称
在一个特殊的应用程序事件中,我需要滚动日志文件并重命名为包含日期和时间的特定文件名 这是我用来滚动文件的函数:Java 将log4j文件滚动到特定名称,java,log4j,Java,Log4j,在一个特殊的应用程序事件中,我需要滚动日志文件并重命名为包含日期和时间的特定文件名 这是我用来滚动文件的函数: public void rollOver() { Enumeration el= Logger.getRootLogger().getAllAppenders(); while ( el.hasMoreElements() ) { Appender a = (Appender) el.nextElem
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\u YYYMMDD\u HHmmSS.log
?使用dailrollingfileappender
而不是RollingFileAppender
。有关如何配置它的详细信息,请参见此问题:此处根据需要进行配置
# 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
可能是相关的:为什么它会做其他事情?您没有设置
文件名模式
等。如果OP只需要一个库存文件名,则可能会有+1的重复,甚至更好,尽管他们表示也需要HHmmSS。尽管名称不同,但DailRollingFileAppender
支持整个日期/时间格式。默认情况下,它每天只滚动一次。由于OP覆盖了滚动,他每天可以获得几个滚动。但是DailRollingFileAppender没有滚动。我必须根据特殊事件滚动文件为什么您认为“DailRollingFileAppender没有滚动”?