我想通过它的名称获取一个记录器,因为我有多个记录器,但仍然打印记录消息的类的类名。感谢您的帮助。
示例:
<!--Loggers...-->
<logger name="LoggerA"><appender-ref="AppenderA"></appender></logger>
<logger name="LoggerB"><appender-ref="AppenderB"></appender></logger>
<logger name="LoggerC"><appender-ref="AppenderC"></appender></logger>
假设每个记录器都会写入不同的*.log
文件。
<<From ClassXYZ>>
private static final Logger LOGA = LoggerFactory.getLogger("LoggerA");
private static final Logger LOGB = LoggerFactory.getLogger("LoggerB");
private static final Logger LOGC = LoggerFactory.getLogger("LoggerC");
在每个文件中,将有以下声明:
2017-04-06 18:23:12,538 [main] [] INFO LoggerA - <<Some Log Message>>
2017-04-06 18:23:12,538 [main] [] INFO LoggerB - <<Some Log Message>>
2017-04-06 18:23:12,538 [main] [] INFO LoggerC - <<Some Log Message>>
但我希望/希望将其记录为:
2017-04-06 18:23:12,538 [main] [] INFO ClassXYZ - <<Some Log Message>>
2017-04-06 18:23:12,538 [main] [] INFO ClassXYZ - <<Some Log Message>>
2017-04-06 18:23:12,538 [main] [] INFO ClassXYZ - <<Some Log Message>>
我的模式是:
%d [%thread] [%X{CONTEXT}] %-5level %logger{70} - %msg%n
答案 0 :(得分:0)
您可以在模式中使用%l,如果不介意打印代码编号和类名。
ps,%l是一个log4j配置,如果你使用的是logback,可以参考Logback pattern equivalent of log4j %l