java - Log4j配置: How to create a new folder for each day?

标签 java logging log4j

因此,我们使用 Log4j 的 DailyRollingFileAppender 来创建日志文件。这真的很棒,因为它可以每天或每小时创建一个新文件。我们希望附加程序根据日期创建一个新文件夹,然后根据小时创建新的日志文件。这可能吗?

这是我们当前的配置...当前设置为将所有日志文件(每小时创建)转储到 someFolder 中。我想我们可以在"file"参数中做一些奇特的事情来完成我们想要的事情:

    <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>

最佳答案

这对于该附加程序是不可能的,因为它总是将日期附加到指定的文件名(因此您无法指定一些特殊的文件名来实现您的结果)并且不会创建丢失的目录,即使您指定一些奇特的日期模式也是如此。

因此,您可以自己编写一个附加程序,或者在某处找到这样的自定义 log4j 附加程序。 Log4j的后继者,logback,has such an appender .

关于java - Log4j配置: How to create a new folder for each day?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4348336/

相关文章:

Python 全局日志记录

java - Log4j2 如果不存在则创建新的日志文件

java - 如何仅为特定类配置 log4j2.xml 日志级别?

java - 无法安装新软件/检查更新 eclipse

c++ - 使用记录器的基于策略的方法

java - 将 java.util.date 转换为 java.sql.date

java - 匹配整个 Java 异常堆栈跟踪的正则表达式

java - 设置 log4j 配置文件时出错

java - 在 ThreadLocal 实例上强制 GC 的更好方法是什么?

java - 如何根据我得到的错误自定义 SPRING_SECURITY_LAST_EXCEPTION.message