Log4j 配置:如何每天创建一个新文件夹?
因此,我们使用 Log4j 的 DailyRollingFileAppender 来创建日志文件。这真的很棒,因为它可以每天或每小时创建一个新文件。我们希望附加程序根据日期创建一个新文件夹,然后根据小时创建新的日志文件。这可能吗?
这是我们当前的配置...当前设置为将所有日志文件(每小时创建)转储到 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>
So, we are using Log4j's DailyRollingFileAppender
to create our log files. This is really nice as it can create a new file for each day or hour. We'd like the appender to create a new folder based on the day, then new log files based on the hour. Is this possible?
Here is our current configuration... currently set up to dump ALL log files (created hourly) into someFolder
. I'd guess we can do something fancy in the "File" param to do what we want:
<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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于该附加程序来说这是不可能的,因为它总是将日期附加到指定的文件名(因此您无法指定一些特殊的文件名来实现您的结果)并且不会创建丢失的目录,即使您指定一些奇特的日期模式也是如此。
因此,您可以自己编写一个附加程序,或者在某处找到这样的自定义 log4j 附加程序。 Log4j 的后继者 logback 就有这样一个 Appender。
This is not possible with that appender, since it always appends the date to the specified filename (so you cannot specify some special filename to achieve your result) and does not create missing directories, even if you specify some fancy date pattern.
So you may write an appender on your own or find such a custom log4j appender somewhere. Log4j's successor, logback, has such an appender.