我目前正在使用Log4j2进行日志记录的应用程序。
下面是Log4j2.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug" packages="myappsystem">
<Appenders>
<MyDockerAppender name="STDOUT" />
</Appenders>
<Loggers>
<logger name="org.springframework" level="ERROR"/>
<logger name="myappsystem" level="INFO"/>
<Root level="ERROR" additivity="true" includeLocation="true">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
现在,我在这里面临的挑战是记录器似乎仅在我执行以下操作时才记录日志
private static final Logger LOGGER = LogManager.getLogger("myappsystem");
LOGGER.info("Entering method");
这里的问题是,它没有为我提供正在记录此特定行的类文件的详细信息。
因此,我尝试执行以下操作:
private static final Logger LOGGER = LogManager.getLogger(MyServiceImpl.class);
这似乎不起作用。
关于我要去哪里的任何想法?
最佳答案
您的记录器已配置为
<logger name="myappsystem" level="INFO"/>
因此
LogManager.getLogger("myappsystem");
作品。
如果您使用
LogManager.getLogger(MyServiceImpl.class);
您必须像在
<logger name="org.springframework" level="ERROR"/>
中使用的那样,以完全合格的Classname(带有包)开始配置Logger所以
<logger name="my.project.package.structure" level="INFO"/>