Java spring引导中的Log4j2未使用XML文件中的模式
我有一个spring boot项目,以下是我使用记录器的方式:Java spring引导中的Log4j2未使用XML文件中的模式,java,log4j2,Java,Log4j2,我有一个spring boot项目,以下是我使用记录器的方式: import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; class MyController{ private static final Logger log = LogManager.getLogger(MyController.class); public void do(){ log.err
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
class MyController{
private static final Logger log = LogManager.getLogger(MyController.class);
public void do(){
log.error("test");
}
}
和src/main/resources/log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="-- %msg%n --" />
</Console>
</Appenders>
<Loggers>
<Root level="debug" additivity="false">
<AppenderRef ref="console" />
</Root>
</Loggers>
</Configuration>
您需要指定log4j2上下文: 在您的主方法内部(我猜在您的案例中,在日志记录之前在
do()
内部):
其中log4j2configFilename
是设置文件的路径。如果您正确地将该文件夹标记为资源文件夹(默认设置),则它应该是
String log4j2configFilename = "log4j2.xml";
如果不起作用,请尝试:
String log4j2configFilename = "src/main/resources/log4j2.xml";
编辑:
您没有排除正确的模块。在你的gradle文件中,你必须替换
exclude group: 'org.slf4j', module: 'slf4j-log4j12'
与
可能发生的情况是,该模块仍然处于从属关系中,因为它以前包含过。为了彻底摆脱它,你必须管理图书馆
关于IntelliJ IDEA:is文件>项目结构…>库
,在列表中查找Gradle:org.apache.logging.log4j:log4j-to-slf4j:2.12.1
,然后单击列表上方的-
图标
希望我能提供帮助。您的配置是否可能只包含状态信息的配置<代码>,因为log24j可以配置为自动
org.apache.logging.slf4j.SLF4JLoggerContext不能转换为org.apache.logging.log4j.core.LoggerContext
我将发布我的gradle文件删除显式转换或在声明LoggerContext时指定完整的包,例如:org.apache.logging.slf4j.SLF4JLoggerContextLoggerContext=xxxxx
I不替换LoggerContext=(org.apache.logging.log4j.core.LoggerContext)LogManager.getContext(false)代码>带有LoggerContext context=LogManager.getContext(false)
ororg.apache.logging.slf4j.LoggerContext=LogManager.getContext(false)代码>尝试两种情况请查看我的gradle文件。我没有:org.apache.logging.slf4j谢谢!
String log4j2configFilename = "src/main/resources/log4j2.xml";
exclude group: 'org.slf4j', module: 'slf4j-log4j12'
exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'