按名称获取记录器,打印类名称

时间:2017-04-10 12:46:45

标签: java logging logback slf4j

我想通过它的名称获取一个记录器,因为我有多个记录器,但仍然打印记录消息的类的类名。感谢您的帮助。

示例:

<!--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

1 个答案:

答案 0 :(得分:0)

您可以在模式中使用%l,如果不介意打印代码编号和类名。

ps,%l是一个log4j配置,如果你使用的是logback,可以参考Logback pattern equivalent of log4j %l