因此,我们使用Log4j的DailyRollingFileAppender
来创建我们的日志文件。这非常好,因为它可以为每天或每小时创建一个新文件。我们希望appender根据当天创建一个新文件夹,然后根据小时创建新的日志文件。这可能吗?
这是我们当前的配置...当前设置为将所有日志文件(每小时创建)转储到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>
答案 0 :(得分:4)
使用该appender是不可能的,因为它总是将日期附加到指定的文件名(因此您不能指定一些特殊的文件名来实现您的结果)并且不会创建丢失的目录,即使您指定了一些奇特的日期模式。
因此,您可以自己编写一个appender,或者在某处找到这样的自定义log4j appender。 Log4j的后继者,logback,has such an appender。