简体   繁体   English

log4j - 每次运行一个文件

[英]log4j - one file per run

I have found a similar question for log4net( log4net one file per run ), but i am struggling to convert this to log4j.properties file format.我发现 log4net 有一个类似的问题( 每次运行 log4net 一个文件),但我正在努力将其转换为log4j.properties文件格式。 The patters just don't get applied:模式只是没有得到应用:

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
...

I see what is wrong here, but I don't know how to fix it.我知道这里有什么问题,但我不知道如何解决。

You need to use RollingFileAppender with the RollingStyle set to Date.您需要使用RollingFileAppender并将 RollingStyle 设置为 Date。 So the config would look something like所以配置看起来像

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

I don't think it is possible to use slashes or colons in the date pattern as these are not characters that can occur in a file name.我认为不能在日期模式中使用斜杠或冒号,因为这些不是可以出现在文件名中的字符。

Note that this will actually create a new log file every second, which doesn't match what you've asked for in the title of your question.请注意,这实际上每秒都会创建一个新的日志文件,这与您在问题标题中要求的内容不符。 If you really want a new log file for every run then you should set the RollingStyle to Once.如果您真的希望每次运行都有一个新的日志文件,那么您应该将 RollingStyle 设置为一次。 But in this case your file name will not contain a date pattern.但在这种情况下,您的文件名将不包含日期模式。

Try RollingFileAppender尝试 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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM