2010-12-03 225 views
2

因此,我们使用Log4j的DailyRollingFileAppender来创建我们的日志文件。这非常好,因为它可以为每天或每小时创建一个新文件。我们希望appender根据当天创建一个新文件夹,然后根据小时创建新的日志文件。这可能吗?Log4j配置:如何为每一天创建一个新文件夹?

这是我们目前的配置...目前设置为转储所有日志文件(每小时创建)到someFolder。我想我们可以做一些花哨的“文件”参数做我们想要的:

<appender name="PlainFileAppender" class="org.apache.log4j.DailyRollingFileAppender"> 
     <param name="File" value="someFolder/someFileName_plain.log" /> 
     <param name="DatePattern" value=".yyyy-MM-dd-HH" /> 
      <param name="ImmediateFlush" value="true" /> 
      <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" 
       value="%d %-5p [%t] %c{1}: %m%n" /> 
     </layout> 
      <filter class="com.trgr.cobalt.infrastructure.logging.ClassFilter"> 
       <param name="classNameFilter" value="com.trgr.cobalt.infrastructure.logging.LogRecord" /> 
       <param name="acceptOnMatch" value="false" /> 
       <param name="neutrality" value="true" /> 
      </filter> 
    </appender> 

回答

4

这是不可能与附加器,因为它总是追加日期到指定的文件名(所以你不能指定一些特殊的文件名来实现你的结果),并且不会创建丢失的目录,即使你指定了一些奇特的日期模式。

所以你可以自己写一个appender或者在某处找到这样一个自定义的log4j appender。 Log4j的后继者,logback,has such an appender

相关问题