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