【问题标题】:How to configure log4j2.xml log level for specific class only?如何仅为特定类配置 log4j2.xml 日志级别?
【发布时间】:2015-09-11 08:36:22
【问题描述】:

log4j 中,可以通过package 定义日志级别,如下所示:

    <logger name="org.springframework.web.servlet.mvc.method.annotation" level="info">
        <AppenderRef ref="CONSOLE" />
    </logger>

Questin:如何仅定义特定类的日志记录? (例如org.springframework.web.servlet.mvc.method.annotation.EndpointHandlerMapping)?如果我只是将其放入 &lt;logger name 属性中,则不会再记录任何内容。

【问题讨论】:

  • 当您记录任何内容时,该类是否记录了任何内容?
  • 是的,如果是的话。
  • 那么我想它应该可以工作。您是否对拼写进行了三次检查?

标签: java log4j log4j2


【解决方案1】:

它也应该与完全限定名称一起使用。 Logger.name 不必只是包/类,但它可以是您想要的任何名称。当你调用 LoggerFactory.getLogger("MyLogger") 时,你必须使用

<Logger name="MyLogger" level="info">
  <AppenderRef ref="CONSOLE"/>
</Logger>

检查使用 logger 进行包时记录的内容并使用日志中的 logger 名称。 此类记录的记录器名称是什么?

【讨论】:

  • logger名字是o.s.w.s.m.m.a.EndpointHandlerMapping是spring-boot的logger包名缩写方式。
  • 我会尝试使用
  • @membersound - 你确定是 spring-boot 做的缩写吗? Log4J2 在日志记录格式中有一个选项可以以这种方式缩写记录器源,但这只是一个输出选项,而不是实际记录器名称的更改。
猜你喜欢
  • 1970-01-01
  • 2019-11-19
  • 2017-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多