Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java log4j2-状态记录器未找到Log4j 2配置文件。使用默认配置_Java_Logging_Log4j_Log4j2 - Fatal编程技术网

Java log4j2-状态记录器未找到Log4j 2配置文件。使用默认配置

Java log4j2-状态记录器未找到Log4j 2配置文件。使用默认配置,java,logging,log4j,log4j2,Java,Logging,Log4j,Log4j2,这是我的配置文件: <Configuration status="INFO"> <Properties> <Property name="log-path">./log</Property> </Properties> <Appenders> <RollingFile name="RollingFile" fileName="${log-path}/mylog.log" filePatter

这是我的配置文件:

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

您应该能够通过使用
system.setProperty(“log4j.configurationFile”,log4j2ConfigFile)告诉系统log4j2配置文件在哪里

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

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


希望这将对您有所帮助。

来自log4j用户指南6.1.1配置:

  • 如果在WEB-INF目录中没有位置…“log4j2”
  • 但这不起作用(至少在我的情况下)。下面的一个工作:

    WEB-INF/classes/log4j2.xml

    希望这有帮助


    应用服务器:wildfly 14

    我已经在我的Spring Boot应用程序中修复了这个问题,将log4j2.xml放在
    src/main/resources
    文件夹中。在编译过程中,它仍然给我“StatusError No Log4j 2 configuration file found”,但当它运行时,它实际上遵循我的配置。希望这能有所帮助。

    如果您使用的是web servlet,您还需要此依赖项:

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

    是否已弃用log4j.configurationFile?
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-web</artifactId>