如题,我希望的效果是当天的日志在当天结束的时候,自动生成一个已当天的日期为后缀的日志文件,第二天的日志写到一个新的文件,我的配置如下:
log4j.rootLogger = debug,console,D,Elog4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUGlog4j.logger.com.apache.ibatis.datasource.DataSourceFactory = DEBUG
log4j.logger.com.apache.ibatis.jdbc.ScriptRunner = INFOlog4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%5p %d{yyyy-MM-dd HH:mm:ss} [%t] - %m%n
### DEBUG ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ../logs/epass/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.DatePattern = '.'yyyy-MM-dd
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
### ERROR ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = ../logs/epass/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.DatePattern = '.'yyyy-MM-dd
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
#log4j.logger.org.springframework = off
log4j.logger.org.apache.ibatis =off
log4j.logger.com.alibaba.dubbo=off
结果,本地测试的时候,手动修改时间,应用可以按天分割并生成日志文件,但是部署到win2008服务器后,就只有应用启动的时候生成了一个文件,今后每天的日志都是追加到这个日志文件中。
求大神帮忙解惑。

解决方案 »

  1.   

    楼主解决了吗,,我和你遇到的问题一样,而且,我在本地的时候,在其中一个tomcat中运行,手动修改时间都会生成日志文件,但是在另一个就不行,所以log4j配置应该是没问题,应该是tomcat和环境问题,但我就是找不到,按照百度上的各种方法都试了,还是不行,敢问楼主是怎么解决的?
      

  2.   

    找找是不是有多个 log4j 配置文件
      

  3.   

    windows 还是 linux这个目录的权限呢?
    ../logs/epass/
      

  4.   

    我也遇到同样问题,大神们有什么解决办法吗?
    我的log4j配置文件如下:
    log4j.rootLogger = info,stdout,I,E### \u8F93\u51FA\u5230\u63A7\u5236\u53F0 ###
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target = System.out
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{1}:%L - %m%nlog4j.appender.I = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.I.File = D:\\logs\\bdsh\\info.log
    log4j.appender.I.DatePattern = '_'yyyy-MM-dd'.log'
    log4j.appender.I.Append = true
    log4j.appender.I.Threshold = INFO 
    log4j.appender.I.layout = org.apache.log4j.PatternLayout
    log4j.appender.I.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%nlog4j.appender.E = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.E.File = D:\\logs\\bdsh\\error.log
    log4j.appender.E.DatePattern = '_'yyyy-MM-dd'.log'
    log4j.appender.E.Append = true
    log4j.appender.E.Threshold = ERROR 
    log4j.appender.E.layout = org.apache.log4j.PatternLayout
    log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    log4j.logger.com.springframework=DEBUG
    log4j.logger.com.mybatis=DEBUG  
    log4j.logger.com.mybatis.common.jdbc.SimpleDataSource=DEBUG  
    log4j.logger.com.mybatis.common.jdbc.ScriptRunner=DEBUG  
    log4j.logger.com.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG  
    log4j.logger.java.sql.Connection=DEBUG  
    log4j.logger.java.sql.Statement=DEBUG  
    log4j.logger.java.sql.PreparedStatement=DEBUG  
    log4j.logger.java.sql.ResultSet=DEBUG
      

  5.   

    问题1
    你们生产上日志级别是?
    问题2
    log4j.appender.D.File = ../logs/epass/log.log
    你这个日志是放到哪里的?