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
我创建了一个 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