小编iBe*_*ams的帖子

启用 TimeBasedTriggeringPolicy 时 Log4j2-RollingFile 不写入

Log4j2 无法读取 RollingFile Appender 的 filePattern 中的日期。当我添加 TimeBasedTriggeringPolicy 并重新配置我的配置文件时,我收到此错误:

“错误无法将字段注入到插件类型类 org.apache.logging.log4j.core.appender.RollingFileAppender、元素 RollingFile 的构建器类中。java.lang.IllegalStateException:模式不包含日期”

我在 log4j2 代码中放置了一个断点,发现原因是频率变量是PatternProcessor object is null. 我不知道为什么这是 null 或如何将其设置为 null 以外的其他值。

如果我注释掉TimeBasedTriggeringPolicy,附加程序开始工作并将日志写入我的文件。

以下是我的 POM 中的 log4j 依赖项:

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.7</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>2.7</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-slf4j-impl</artifactId>
  <version>2.7</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-web</artifactId>
  <version>2.6.2</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>jcl-over-slf4j</artifactId>
  <version>1.7.7</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.7</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这是我的 log4j2.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="30" status="DEBUG">
    <Properties>
        <Property name="baseDir">/logs/oracle/domains/cim</Property>
    </Properties>
    <Appenders>
        <Console name="Console" …
Run Code Online (Sandbox Code Playgroud)

java maven log4j2

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

log4j2 ×1

maven ×1