Log4j 基于时间的滚动策略对我不起作用

Log4j timebasedrolling policy not working for me

我创建了一个 spring boot rest api 并计划使用 log4j 进行日志记录。我可以使用 dailyrollingfileappender 进行登录,但我不喜欢文件名 [app.log.date] 的格式,所以我尝试使用 log4j extras。我有问题 我在启动时遇到错误 tomcat

"log4j:ERROR 无法实例化 class [TimeBasedRollingPolicy]。 java.lang.ClassNotFoundException:TimeBasedRollingPolicy

这是我的 pom.xml log4j 依赖项

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>apache-log4j-extras</artifactId>
        <version>1.2.17</version>
    </dependency>

这是我的 log4j 属性文件(当前正在修改 auditLogger)

log4j.rootLogger=INFO, stdout
log4j.logger.auditLogger = INFO, auditLogger

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.appender.generalLogger=org.apache.log4j.DailyRollingFileAppender
log4j.appender.generalLogger.File=C:\logs\sms-syslog.log
log4j.appender.generalLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.generalLogger.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.generalLogger.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.category.generalLogger=INFO, generalLogger
log4j.additivity.generalLogger=false

log4j.appender.auditLogger=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.auditLogger.rollingPolicy=TimeBasedRollingPolicy
log4j.appender.auditLogger.File=C:\logs\sms-audit.log
log4j.appender.auditLogger.rollingPolicy.FileNamePattern=C:\logs\sms-audit-%d{yyyy-MM-dd}.log
log4j.appender.auditLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.auditLogger.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p: %m%n
log4j.additivity.auditLogger=false

这是我在代码中对 auditlogger 的调用

private static final Logger auditLogger = Logger.getLogger("auditLogger");

请帮忙。我迷路了谢谢!

TimeBasedRollingPolicy 使用以下依赖项:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.2.2</version>
</dependency>

参考下面link:https://examples.javacodegeeks.com/enterprise-java/logback/logback-rollingfileappender-example/

所以答案是由皮特提供的。

属性文件很好,我只需要 FQN。

log4j.appender.auditLogger.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy