log4j - 每次运行一个文件

时间:2014-10-22 07:11:34

标签: java scala log4j

我在log4net(log4net one file per run)中找到了类似的问题,但我很难将其转换为 log4j.properties 文件格式。这些照片没有得到应用:

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File = logs/log-%d{yy/MM/dd HH:mm:ss}.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
...

我看到这里有什么问题,但我不知道如何解决它。

3 个答案:

答案 0 :(得分:0)

您需要使用RollingFileAppender并将RollingStyle设置为Date。所以配置看起来像

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.RollingStyle=Date
log4j.appender.file.DatePattern=yy-MM-dd_HH-mm-ss
log4j.appender.file.StaticLogFileName=false
log4j.appender.file.File=logs/log.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n

我认为在日期模式中不能使用斜杠或冒号,因为这些不是文件名中可能出现的字符。

请注意,这实际上会每秒创建一个新的日志文件,这与您在问题标题中要求的内容不符。如果你真的想要每次运行一个新的日志文件,那么你应该将RollingStyle设置为Once。但在这种情况下,您的文件名将不包含日期模式。

答案 1 :(得分:0)

答案 2 :(得分:-1)

尝试RollingFileAppender

log4j.rootLogger=debug, stdout, file

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\\\log4j-application.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n