Dav*_*dez 2 java logging log4j2
我正在使用 log4j2。我定义了多个记录器,因此我的 log4j2.xml 如下所示:
<Property name="LOG_PATTERN">[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</Property>
...
...
<Loggers>
<Logger name="trace" level="INFO" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="error" level="ERROR" additivity="false">
<AppenderRef ref="errorLog" />
</Logger>
<Logger name="warn" level="WARN" additivity="false">
<AppenderRef ref="warnLog" />
</Logger>
</Loggers>
Run Code Online (Sandbox Code Playgroud)
然后我从代码中调用它们。片段:
Class myclass{
...
Logger LOGGER1 = LogManager.getLogger("trace");
Logger LOGGER2 = LogManager.getLogger("error");
...
LOGGER1.trace("whatever message");
Run Code Online (Sandbox Code Playgroud)
我的问题是,据我所知,当从代码调用记录器时,我可以从 log4j2.xml 指定记录器。例如,如果我想使用“跟踪记录器”,我可以编写 LogManager.getLogger("trace") 代码
然后,当“打印日志”时,%c{1} 不再是类名,而是记录器名称...在此示例中,log4j2 将打印为 %c“trace”而不是“myclass”(即我想要的是)。
我想知道,是否有可能:
预先感谢您的线索。
在 log4j2.xml 文件中,定义日志模式时,您可以使用两个不同的东西:“c”(小写)和“C”(大写)。
包括第二个在内的可能模式如下所示:
<Property name="LOG_PATTERN">[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%C][%M] - %msg%n</Property>
更多信息在这里:http://logging.apache.org/log4j/2.x/manual/usage.html#LoggerVsClass
不管怎样,https: //stackoverflow.com/users/1709216/rgoers之前提出的文章是一座金矿。
| 归档时间: |
|
| 查看次数: |
4967 次 |
| 最近记录: |