Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java log4j。唯一日志文件名_Java_Log4j - Fatal编程技术网

Java log4j。唯一日志文件名

Java log4j。唯一日志文件名,java,log4j,Java,Log4j,如何使用log4j创建唯一命名的日志文件?。当我使用Logback时,我可以这样做: <!-- current time formatted as "yyyyMMdd'T'HHmmss". This value will be available to all subsequent configuration elements. --> <timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss" />

如何使用
log4j
创建唯一命名的日志文件?。当我使用
Logback
时,我可以这样做:

 <!-- current time formatted as "yyyyMMdd'T'HHmmss".  This value will be available to all 
    subsequent configuration elements. -->
<timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss" />

和内部记录器appender定义文件名模式:

<file>${bySecond}.log</file>
${bySecond}.log

我相信log4j 1.7中没有现成的功能支持。但是您可以通过更改
fileName
参数来扩展的
setFile
方法,以支持基于时间的功能。

在滚动到下一个文件后,会附加当前日期,因此您会得到一个以每个文件的日志日期结尾的唯一名称。 引用JavaDoc:

例如,如果文件选项设置为/foo/bar.log,则 日期模式设置为“.”yyyy-MM-dd,于2001年2月16日午夜 日志文件/foo/bar.log将复制到/foo/bar.log.2001-02-16 2001-02-17的日志记录将继续在/foo/bar.log中进行,直到 第二天就开始了

在属性XML文件中添加类似的内容:

<appender name="roll" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="application.log" />
    <param name="DatePattern" value=".yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" 
          value="%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n  %-5p %m%n"/>
    </layout>
  </appender>