现在项目正式服务器上tomcat中放了若干个项目,出点儿错误很难查看tomcat日志,
于是我就想用log4j来做日志处理,把出错信息输入到指定位置,指定文件,这个不难做到,
但我想每天输出一个日期格式形式的文件(但我不想加重命名的批处理命令到服务器上),
譬如,第一天:2010-10-11.log  第二天2010-10-12.log ....不知这个如何做到,能否直接在配置中完成?恳请赐教我用的log4j.xml形式的配置文件我目前配置如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration > 
   <appender name="ERROR" class="org.apache.log4j.DailyRollingFileAppender"> 
<param name="File" value="D:\\soft\\ereryday.log"/> 
<param name="Append" value="true"/> 
<!-- 以日为单位输出LOG文件,每日输出一个LOG文件--> 
<param name="DatePattern" value="'.'yyyy-MM-dd"/> 
<!-- 以时为单位输出LOG文件,每小时输出一个LOG文件 
<param name="DatePattern" value="'.'yyyy-MM-dd-HH"/> 
--> 
<layout class="org.apache.log4j.PatternLayout"> 
<param name="ConversionPattern" 
   value="[%d{yyyy-MM-dd HH:mm:ss,SSS}][%-20c{1}]★%-5p★%m%n"/> 
</layout> 
<!-- 过滤输出时Log内容,在这里,LevelMin是DEBUG,LevelMax都FATAL,       所以输出DEBUG级别到FATAL级别的LOG数据 --> 
<filter class="org.apache.log4j.varia.LevelRangeFilter"> 
<param name="LevelMin" value="ERROR"/> 
<param name="LevelMax" value="ERROR"/> 
</filter> 
</appender>         <root> 
                <priority value="debug"/> 
                <appender-ref ref="ERROR"/> 
        </root>  
</log4j:configuration>

解决方案 »

  1.   

    log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppenderLog4j提供的默认的appender有以下几种: 
      org.apache.log4j.ConsoleAppender(控制台), 
      org.apache.log4j.FileAppender(文件), 
      org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
      org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), 
      org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 
      

  2.   

    org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
      

  3.   

    感谢几位的回答,不过org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),还是不能解决我的问题,我现在就是用的DailyRollingFileAppender,如下配置
    <appender name="ERROR" class="org.apache.log4j.DailyRollingFileAppender">  
    <param name="File" value="D:\\soft\\ereryday.log"/>  
    <param name="Append" value="true"/>  
    <param name="DatePattern" value="'.'yyyy-MM-dd"/>  
    <layout class="org.apache.log4j.PatternLayout">  
    <param name="ConversionPattern"  
      value="[%d{yyyy-MM-dd HH:mm:ss,SSS}][%-20c{1}]★%-5p★%m%n"/>  
    </layout>  
    <filter class="org.apache.log4j.varia.LevelRangeFilter">  
    <param name="LevelMin" value="ERROR"/>  
    <param name="LevelMax" value="ERROR"/>  
    </filter>  
    </appender>  但我运行后执行产生的文件的名字还是everyday.log,那明天呢,它将仍将被错误信息写在名叫everyday.log的文件里吗?
    我想要的效果是譬如今天是2010年10月11日,生成的错误日志文件名就叫2010-10-11.log,
    但村通过log4j.xml文件配置能做到吗?
      

  4.   

    XXX项目中的配置      <appender name="xxxx" class="org.apache.log4j.DailyRollingFileAppender">
                <param name="File" value="d:/xxx.log"/> 
                <param name="Threshold" value="INFO"/>
                <param name="DatePattern" value="'.'yyyy-MM-dd"/>
                <layout class="org.apache.log4j.PatternLayout">
                      <param name="ConversionPattern" value="%d{M/d/yyyy HH:mm} %c %p - %m%n"/>
                </layout>            
          </appender>结果
    xxx.log
    xxx.log.2010-10-09
    xxx.log.2010-10-08
    当天的不会产生日期
      

  5.   

    [fjecm@hcapp classes]$ cat log4j.properties
    # Set root logger level to DEBUG and its only appender to A1.
    log4j.rootLogger=,A1, A2#log4j.logger.cdsc.system.publisher.report = DEBUG# A1 is set to be a ConsoleAppender.
    log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.A1.Threshold=INFO
    log4j.appender.A1.File=/app/fjecm/logs/info.log
    #log4j.appender.A2=org.apache.log4j.FileAppender
    log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.A2.File=/app/fjecm/logs/fmcc.loglog4j.appender.A2.Threshold=ERROR
    #log4j.appender.A2.Append=false#log4j.logger.cdsc.system.publisher.report=DEBUG, A@
    #log4j.logger.cdsc.system.publisher.report=ERROR# A1 uses PatternLayout.
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    #log4j.appender.A1.layout.ConversionPattern=%c %x - %m%n
    log4j.appender.A1.layout.ConversionPattern=Fmcc_Log:[%d{yyyy-MM-dd HH:mm:ss}] %5p %c{1}:%L - %m%nlog4j.appender.A2.layout=org.apache.log4j.PatternLayout
    log4j.appender.A2.layout.ConversionPattern=Fmcc_Log:[%d{yyyy-MM-dd HH:mm:ss}] %5p %c{1}:%L - %m%n