这是我的配置文件:
<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>
但是出现以下错误:
错误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");
答案 0 :(得分:1)
如果您使用的是Web Servlet,则还需要以下依赖项:
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
答案 1 :(得分:0)
您应该能够使用System.setProperty("log4j.configurationFile", log4j2ConfigFile);
来告诉系统log4j2配置文件在哪里
答案 2 :(得分:0)
就我而言,我将文件保存在src / main / resources中。但是Log4J仍然找不到它,因为Maven插件创建的JAR不包含log4j2.xml文件。
要摆脱这个问题,我将文件保留在文件夹的根目录下(紧挨pom.xml)。现在,当我使用Maven插件创建JAR文件时,Log4j可以访问它。而且有效! :)
希望这会对您有所帮助。
答案 3 :(得分:0)
来自 log4j用户指南6.1.1配置:
- 如果没有位置。...WEB-INF目录中的“ log4j2” ...
但这是行不通的(至少就我而言)。下面的作品:
WEB-INF / classes / log4j2.xml
希望这会有所帮助。
应用服务器:wildfly 14
答案 4 :(得分:0)
我已通过将 log4j2.xml 放在. . .
文件夹中,已在Spring Boot应用程序中修复了此问题。它仍然会在编译期间为我提供“ StatusError No Log4j 2配置文件未找到”,但是在运行时,它实际上会遵循我的配置。希望这会有所帮助。