是否可以为每次迭代创建新的日志文件?

时间:2014-04-25 16:27:30

标签: java logging log4j

任何人都可以告诉我如何为每次迭代创建新的日志文件。??

记录属性:

# Define the root logger with appender file
log = /usr/home/log4j
log4j.rootLogger = INFO, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=.\\LogFile.html

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.HTMLLayout
log4j.appender.FILE.layout.Title=Log File
log4j.appender.FILE.layout.LocationInfo=true

我需要在此属性文件中进行哪些更改???

先谢谢。

1 个答案:

答案 0 :(得分:0)

我假设每次迭代你的意思是每次程序运行时。如果是这种情况,那么以下内容应该会有所帮助:

  • 在您的 log4j.properties 文件中添加以下行:

    appender.file.Append = false
    appender.file.fileName=../logs/${sys:logfilename}.log
    

    这确保每次新运行都会创建一个新文件并且不会附加到以前的日志中,并且“${sys:logfilename}”负责根据我们需要定义的名为 logfilename 的系统变量获取值在定义记录器之前的代码中(下一点)。

  • 在导入记录器之前定义 logfilename 系统变量。在这里,我在每个新的日志文件中附加日期和时间:

      String dateTimeNow = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss").format(new Date());
      System.setProperty("logfilename", "mylogfile_"+dateTimeNow);
      logger = LogManager.getLogger(MyClass.class);