我有一份Logo4j的配置文件,想让它按天记录日志,在本地的时候我测试过是好使的,但是不知道为什么放在服务器上就不能按天记录日志,它只记录了当天的日志.
我的代码如下:log4j.rootLogger=INFO,stdout
log4j.appender.stdout=org.apache.log4j.DailyRollingFileAppender
log4j.appender.stdout.file=D:\\logs\\log4jadmin.log 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%nlog4j.logger.Alipay= DEBUG, Alipay
log4j.appender.Alipay=org.apache.log4j.FileAppender
log4j.appender.Alipay.File=D:\\logs\\log4j\\alipay\\alipay.log
log4j.appender.Alipay.layout=org.apache.log4j.PatternLayout
log4j.appender.Alipay.layout.ConversionPattern=%d %p [%c] - %m%n
请高手帮小弟看看吧,谢谢!!

解决方案 »

  1.   

    又一个被害的服务器什么操作系统啊?
    是不是把第二天的写到第一天了?
    是不是凌晨有定时任务跑,拼命记日志?
    window下没有压力测试,但是好像Unix发作频繁。
    其实是能够换天的,只不过看RP,RP好就换,不好不换:)如果用,就别用那个DailyRollingFileAppender,用RollingFileAppender
    按大小分吧
      

  2.   

    是吗?我的操作系统是Windows Server 2003的,它是把昨天的日志给删掉了,重新写今天的日志.
    这个到底是怎么回事啊,能不能提供一下解决方案呢?
      

  3.   

    使用DailyRollingFileAppender就行了,每天产生一个日志文件么。
      

  4.   

    log4j的 bug已经很多人遇到了特别是系统时间区域和程序时间区域不一致时
      

  5.   

    不要一味的人为logj有bug,你充分调查了吗,你充分发掘了该jar包的潜能了吗?
    你仔细阅读过其源码吗?自己写不出来,还一个劲发牢骚,以为自己有多了不起。看着就来气。
      

  6.   

    log4j.logger.Alipay= DEBUG, Alipay
    log4j.appender.Alipay=org.apache.log4j.FileAppender
    log4j.appender.Alipay.File=D:\\logs\\log4j\\alipay\\alipay.log
    log4j.appender.Alipay.layout=org.apache.log4j.PatternLayout
    log4j.appender.Alipay.layout.ConversionPattern=%d %p [%c] - %m%n
    把这句话删了,log4j.appender.Alipay=org.apache.log4j.FileAppender这个是追加的意思,肯定会把之前生成的代码覆盖的.知识使用你上面写的那就可以了.
      

  7.   


    不好意思了。我看了源码。
    至于挖掘潜能,DailyRollingFileAppender这个东西的功能本身容易造成这个问题。你要是说换个Appender当然没有问题了。我不仅读了源码,还自己实现了一个。按照log4j的这个appender的功能,即便自己实现也会出现这个问题。意外的是在这个过程中发现Log4j在巨量请求的时候会发生阻塞:)导致整个程序锁死的。最后决定完全重新实现了一个。
      

  8.   


    最后用的是这个
     <appender name="msg" class="org.apache.log4j.RollingFileAppender">
                    <param name="Threshold" value="TRACE"/>
                    <param name="File" value="/.../.../....log"/>
                    <param name="Append" value="true"/>
                    <param name="MaxFileSize" value="500MB"/>
                    <param name="MaxBackupIndex" value="5"/>
                    <layout class="org.apache.log4j.PatternLayout">
                            <param name="ConversionPattern" value="[%L][threadname:%t][level:%p][time:%d]%m %n"/>
                    </layout>
          </appender>
      

  9.   

    stdout这个我要求记录日志,另外的Alipay我不要求按天记录日志,我说的主要是上面的问题.
    大家大部分回复的都是下面的问题(Alipay)
    难道这两个有影响吗?
    如果这个Log4j的BUG,那么新版本解决这个问题了吗?
      

  10.   

    这个问题我以前也遇到过。应该是log4j的bug。不过,我查到log4j不准备解决这个bug,它的mailing list建议用户改用其他的FileAppender。我当时为了解决这个问题,直接下载了log4j的源代码,然后修复了这个问题。