繁体   English   中英

log4j2 - StatusLogger未找到Log4j 2配置文件。 使用默认配置

[英]log4j2 - StatusLogger No Log4j 2 configuration file found. Using default configuration

这是我的配置文件:

<Configuration status="INFO">
  <Properties>
    <Property name="log-path">./log</Property>
  </Properties>
  <Appenders>
    <RollingFile name="RollingFile" fileName="${log-path}/mylog.log" filePattern="${log-path}/mylog-%d{yyyy-MM-dd}-%i.log">
      <PatternLayout>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%p]\t%m%n</pattern>
      </PatternLayout>
      <Policies>
        <SizeBasedTriggeringPolicy size="10 MB" />
      </Policies>
      <DefaultRolloverStrategy max="32" />
    </RollingFile>


    <Console name="STDOUT" target="SYSTEM_OUT" ignoreExceptions="false">
      <PatternLayout>
        <pattern>%n%d{yyyy-MM-dd HH:mm:ss.SSS} [%p]\t%m</pattern>
      </PatternLayout>
    </Console>
  </Appenders>
  <Loggers>
    <Logger name="mylog" level="debug" additivity="false">
      <appender-ref ref="RollingFile" level="DEBUG" />
      <appender-ref ref="STDOUT" level="DEBUG" />
    </Logger>

  </Loggers>
</Configuration>

但是我收到以下错误:

ERROR StatusLogger未找到Log4j 2配置文件。 使用默认配置(仅将错误记录到控制台)或用户以编程方式提供的配置。 设置系统属性'log4j2.debug'以显示Log4j 2内部初始化日志记录。 有关如何配置Log4j 2的说明,请参阅https://logging.apache.org/log4j/2.x/manual/configuration.html

我该如何解决?

这是我的Maven依赖:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.11.0</version>
</dependency>

日志配置文件读取非常清楚,因为它使用我/ log目录中定义的模式正确写入。

这是我在我的代码中实例化它的方式:

LoggerContext lcontext = (org.apache.logging.log4j.core.LoggerContext)  LogManager.getContext(false)
Logger logger = LogManager.getLogger("mylog");

我已经在我的Spring Boot应用程序中修改了这个,将log4j2.xml放在src/main/resources文件夹中。 它仍然在编译期间给我“找到StatusError No Log4j 2配置文件”,但是当它运行时,它实际上跟随我的配置。 希望这可以帮助。

您应该能够使用System.setProperty("log4j.configurationFile", log4j2ConfigFile);告诉系统log4j2配置文件的位置System.setProperty("log4j.configurationFile", log4j2ConfigFile);

在我的情况下,我将文件保存在src / main / resources。 但是Log4J仍然无法找到它,因为Maven插件创建的JAR不包含log4j2.xml文件。

为了解决这个问题,我将文件保存在文件夹的根目录下(就在pom.xml旁边)。 现在,当我使用Maven插件创建JAR文件时,Log4j可以访问它。 它奏效了! :)

希望这会帮助你。

来自log4j-user-guide 6.1.1配置

  1. 如果没有位置.... WEB-INF目录中的“log4j2”...

但这不起作用(至少在我的情况下)。 以下工作:

WEB-INF /班/ log4j2.xml

希望这可以帮助。

应用服务器:wildfly 14

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM