当前位置: 首页 > 知识库问答 >
问题:

Log4j2通配符记录器名称

步胜
2023-03-14

我正在使用log4j在我的一个应用程序上做一些日志记录。我的配置文件中的日志记录程序如下所示。

<Root level="info">
    <AppenderRef ref="Console"/>
</Root>

<Logger name="org.eclipse.jetty.server.Server" level="warn" additivity="false">
    <AppenderRef ref="Console"></AppenderRef>
</Logger>
<Logger name="org.eclipse.jetty.util.log" level="warn" additivity="false">
    <AppenderRef ref="Console"></AppenderRef>
</Logger>
<Logger name="org.eclipse.jetty.server.ServerConnector" level="warn" additivity="false">
    <AppenderRef ref="Console"></AppenderRef>
</Logger>

基本上,我希望从我写的代码中获得“信息”级别的消息,但是我希望外部库只在有警告或更可怕的情况下记录。

这正如我所期望的那样工作,但是在“org.eclipse.jetty”下有很多类

有可能这样做吗?

<Logger name="org.eclipse.jetty.*" level="warn">
    <AppenderRef ref="Console" level="warn"></AppenderRef>
</Logger>

也就是说,我希望整个包中的所有内容都只警告/错误/致命。

我试了上述方法,但没有效果。是否有一个“通配符”或我可以用来为包中的所有内容设置记录器的东西?

共有1个答案

费秦迟
2023-03-14

对于基于属性的配置,只需使用包名,而不使用任何通配符。也应该使用XML:)

 类似资料:
  • 由此我从NetBeans得到以下错误消息: 所有异常消息都写入控制台,包括用户日志的消息。所以我知道两个伐木工都在工作。记录器附加器写入文件OK。userLog记录器不会创建任何文件,它使用几乎相同的附加器。 看来我还没有正确地命名一些东西来允许log4j2找到记录器。我试过各种命名的组合来弄对它,但我搞不清问题出在哪里。 我必须在每个类的记录器初始化中包含类名吗? 编辑:我需要包含包名。我花了一

  • 我在XML中指定log4j2 logger的文件名,如下所示。一切正常,但我得到了错误 2017-09-06 16:54:33,496主要错误未知的对象"RlandAccessFileAppender的类型org.apache.logging.log4j.core.appender.RlandAccessFileAppender被忽略:尝试嵌套它在其中之一:["Appender","Logger"

  • 我试图从Log4j 1.7迁移到Log4j2.4在1.7中,我通过扩展org.apache.log4j创建AppLogger类。记录器和使用扩展的调试/错误/致命方法,例如, 但是在log4j2中。x、 我无法扩展类组织。阿帕奇。登录中。log4j。记录器;实现这一目标的最佳方式是什么?

  • 我想让一些记录器异步在log4j2.properties文件。在xml格式中,您可以添加为 我在log4j2中试过了。作为记录器的属性=com foo Bar 但这种语法似乎是错误的。 正确的配置方法是什么?

  • Log4j2-LogManager。getLogger(“名称”)未找到自定义记录器。 以下所有操作都返回相同的记录器,即此代码所在类的根记录器。我想这些都会有所不同,我会在前3个电话中拿回我的3个定制电话。注意:将创建appender指定的文件,但不会向其发送日志。 我使用以下方法创建自定义记录器: writeXmlConfiguration中的等效XML为:

  • 我使用的是Camel3.5和Spring Boot2.3.4应用程序。我试图在log4j2.xml文件中使用log4j2和配置日志级别和附加符。它从处理器工作,但不直接在RouteDefinition中工作。 processor类: 下面是控制台输出。只打印错误日志级别。我必须调用方法.log(logginglevel.debug,LOGGER)才能得到我想要的。 编辑 感谢Luca Burgaz