我正在使用log4j2框架,在每个方法中我都试图通过在开始时调用entry()和在结尾处的exit()来记录进入和退出但是这些方法没有打印任何日志信息。请任何人都可以帮助我,因为我是这个框架的新手。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console target="SYSTEM_OUT" name="CONSOLE">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="Console" />
</Root>
<Root level="trace">
<AppenderRef ref="CONSOLE" />
</Root>
<Root level="ERROR">
<AppenderRef ref="CONSOLE" />
</Root>
<Root level="info">
<AppenderRef ref="CONSOLE" />
</Root>
<Root level="debug">
<AppenderRef ref="CONSOLE" />
</Root>
</Loggers>
</Configuration>
答案 0 :(得分:4)
我同意之前的回答:您的配置只能包含一个 <Root>
元素。
然后,要回答有关entry()和exit()方法的问题,要使这些方法有用,您需要在模式中启用 location 信息。例如:
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} %method - %msg%n" />
答案 1 :(得分:2)
配置文件中应该只有一个Root
定义 - 您为记录器设置的级别是该记录器将生成的最好的详细级别,因此记录器设置为TRACE将产生TRACE,DEBUG,INFO,WARN,ERROR和FATAL消息,一组设置为ERROR将仅产生ERROR和FATAL消息等。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console target="SYSTEM_OUT" name="CONSOLE">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="CONSOLE" />
</Root>
</Loggers>
</Configuration>
此配置会将所有级别的所有日志消息从任何记录器(在您自己的或第三方代码中)记录到控制台。更常见的是设置,以便大多数记录器使用更高的阈值,但您可以为特别需要它的类打开更详细的日志记录,例如
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console target="SYSTEM_OUT" name="CONSOLE">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
</Appenders>
<Loggers>
<!-- log TRACE-level messages for com.example and its descendants -->
<Logger level="trace" name="com.example" />
<!-- but only WARN or higher for anything else -->
<Root level="warn">
<AppenderRef ref="CONSOLE" />
</Root>
</Loggers>
</Configuration>