我在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
...
我看到这里有什么问题,但我不知道如何解决它。
答案 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)
可能这就是你要问的问题。
http://veerasundar.com/blog/2009/08/how-to-create-a-new-log-file-for-each-time-the-application-runs/
礼貌:Is it possible to configure log4j to create a new file with every run of the application?答案 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