【问题标题】:Log4j: How to use a custom name for Logger?Log4j:如何为 Logger 使用自定义名称?
【发布时间】:2018-10-18 20:20:44
【问题描述】:

我创建了一个使用自定义名称而不是类名的 Logger

private static Logger LOGGER = LogManager.getLogger("REQUEST_TRACKER");
LOGGER.info("Some Message");

模式是

pattern=%d{yyyy-MM-dd HH:mm:ss,SSS Z} %-5p %-4r [%t] %c{1} %x - %m%n

Logger 没有在输出中打印任何内容。

但是当我把名字改成下面的类时

private static Logger LOGGER = LogManager.getLogger(ApplicationResource.class);

我看到了输出2018-10-18 13:13:52,805 -0700 INFO 40001 [http-nio-8080-exec-10] com.abc.application.service.ApplicationResource [] - Some Message

如何配置 Logger 以使用自定义名称?

【问题讨论】:

  • 您是否设置了附加程序以使用具有给定名称的记录器?请提供minimal reproducible example
  • 我正在使用 %c{1}。它适用于类名但不适用于自定义名称

标签: java logging log4j


【解决方案1】:

您必须将记录器分配给 Log4J 配置中的附加程序。

如果你使用 XML 配置, 它看起来像这样:

<logger name="REQUEST_TRACKER">
    <level value="INFO" />
    <appender-ref ref="appenderNameHere" />
</logger>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2013-06-09
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多