Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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 DailyRollingFileAppender将日期附加到文件名_Java_Logging_Log4j2_Log4j - Fatal编程技术网

Java 无法使用log4j DailyRollingFileAppender将日期附加到文件名

Java 无法使用log4j DailyRollingFileAppender将日期附加到文件名,java,logging,log4j2,log4j,Java,Logging,Log4j2,Log4j,您好,我正在尝试使用log4j DailyRollingFileAppender将当前日期附加到文件名,但它不起作用。我使用了如下配置。请对此提出解决方案 性质 我希望日志文件为app2014-11-07.log,但它仍然是app.logDailRollingFileAppender意味着归档日志文件。 例如,今天是2014.11.07,当您第一次运行应用程序时,您的日志文件名将是app.log。明天,你再次运行应用程序,它的日志文件也被命名为app.log,但是昨天的日志文件已经更改,可能类似

您好,我正在尝试使用log4j DailyRollingFileAppender将当前日期附加到文件名,但它不起作用。我使用了如下配置。请对此提出解决方案

性质
我希望日志文件为app2014-11-07.log,但它仍然是app.log

DailRollingFileAppender意味着归档日志文件。
例如,今天是2014.11.07,当您第一次运行应用程序时,您的日志文件名将是
app.log
。明天,你再次运行应用程序,它的日志文件也被命名为
app.log
但是昨天的日志文件已经更改,可能类似于
app.log.2014.11.07

试试这个:

  • 将系统日期更改为2014.11.08
  • 运行应用程序,然后查看日志路径:
    F:/temp/

  • 改变这个

        log4j.appender.rollingAppender.DatePattern='.'yyyy-MM-dd
    

    这意味着它将每分钟生成一个新的日志文件。

    再次运行它。

    如果您使用的是log4j 1.x,我们强烈建议您使用1而不是(可能会丢失消息,)

    因此,appender的配置可以是:

    log4j.rootLogger=DEBUG,rollingAppender
    log4j.appender.rollingAppender=org.apache.log4j.rolling.RollingFileAppender
    log4j.appender.rollingAppender.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
    log4j.appender.rollingAppender.rollingPolicy.fileNamePattern=F:/temp/app%d{yyyy-MM-dd}.log
    log4j.appender.rollingAppender.layout=org.apache.log4j.patternalyout
    log4j.appender.rollingAppender.layout.ConversionPattern=[%p]%d%c%M-%M%n
    

    注释

  • 在这种情况下,您需要添加相应的jar()

  • 您可以使用以下配置:

    log4j.rootLogger=INFO, stdout
    log4j.appender.stdout=org.apache.log4j.DailyRollingFileAppender
    #log4j.appender.stdout.layout=org.apache.log4j.HTMLLayout
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%d](%F:%L) - %m%n
    #log4j.appender.stdout.File=/usr/tomcat7/webapps/ngp/newgen.log
    log4j.appender.stdout.File=c:/logs/DSP.log
    #log4j.appender.stdout.DatePattern='.'yyyy-MM-dd
    log4j.appender.stdout=org.apache.log4j.RollingFileAppender
    log4j.appender.stdout.MaxBackupIndex=1
    log4j.appender.stdout.append=false
    

    有没有其他方法可以让我甚至得到今天的文件和当前的日期?尝试了这个,下面给出了错误。log4j:WARN未能将属性[rollingPolicy]设置为值“org.apache.log4j.rolling.TimeBasedRollingPolicy”。log4j:WARN请为名为“rollingAppender”的RollingFileAppender设置一个滚动策略。我和V Joe的情况相同。仅供参考,此答案中提到的错误案例已解决。
        log4j.appender.rollingAppender.DatePattern='.'yyyy-MM-dd-HH-mm
    
    log4j.rootLogger=INFO, stdout
    log4j.appender.stdout=org.apache.log4j.DailyRollingFileAppender
    #log4j.appender.stdout.layout=org.apache.log4j.HTMLLayout
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%d](%F:%L) - %m%n
    #log4j.appender.stdout.File=/usr/tomcat7/webapps/ngp/newgen.log
    log4j.appender.stdout.File=c:/logs/DSP.log
    #log4j.appender.stdout.DatePattern='.'yyyy-MM-dd
    log4j.appender.stdout=org.apache.log4j.RollingFileAppender
    log4j.appender.stdout.MaxBackupIndex=1
    log4j.appender.stdout.append=false