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

按级别筛选传递给父记录器的日志消息(logback)

王才英
2023-03-14

在我看来,我想要达到的目标是很普通的,但我并没有让它起作用:

根记录器可以记录从其他特定记录器传递的信息消息,但是对于这个特定的记录器,我不希望任何信息消息被向上传递到层次结构上。

共有1个答案

蒋寒
2023-03-14

logback:两个附加程序,多个记录器,不同的级别<-这里的第一个答案应该有你需要的。它描述了一个自定义的ThresholdLoggerFilter,它可以在根的appender上使用,根据消息的来源(记录器)和级别阈值来过滤消息。然后您只需过滤掉您不想从中看到任何其他内容的记录器的错误以外的任何内容:

<appender name="RootAppender" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>INFO</level>
    </filter>
    <filter class="com.myapp.ThresholdLoggerFilter">
        <logger>TheLoggerFromWhichYouWantOnlyErrorOnTheRoot</logger>
        <level>ERROR</level>
    </filter>
</appender>

实际上它并不是那么常见或简单的用例,但它是可能的。

 类似资料:
  • 我希望将具有特定记录器名称、特定级别和更高级别(例如和更高级别)的消息记录到特定日志处理程序(例如文件处理程序),同时仍将所有日志消息发送到控制台。Python是2.7版。 到目前为止,我尝试创建了两个记录器: 根记录器 命名记录器 对于根记录器,我附加了,并将日志级别设置为。 然后,我将一个处理程序附加到命名记录器,并将该记录器的级别设置为。 当我现在调用使用命名记录器的模块时,我不再获得传播到

  • 我使用Kubernetes作为cron作业运行python脚本。问题是,直到作业完成后,我才看到脚本的输出(可能需要一段时间才能运行)。我怀疑这是由于日志记录级别(--v选项)造成的,但在我的整个生命周期中,我都找不到它的文档(默认为--v=0)。如果我想增加输出内容的详细程度,是否有人知道“INFO”或“TRACE”的值(或者这些值是什么/定义在哪里)?提前谢谢你的帮助。 编辑:是否有人在Kub

  • 现在,问题是,当我以以下方式进行日志记录时: 尽管根记录器级别被设置为“错误”,但日志条目仍然存在于两个日志文件中。然而,当我去掉“it.pkg.testpkg.service”记录器(通过注释或删除它)时,条目停止进入根记录器。我不太清楚这是怎么回事。 目前,我已经找到了一个临时解决方案,方法是在“root_file_appender”中添加以下条目: 谢了。

  • 问题内容: 我正在使用Python的机制将输出打印到屏幕上。我可以使用print语句来做到这一点,但是我想允许用户调整更好的粒度以禁用某些类型的输出。我喜欢为错误打印的格式,但是当输出级别为“信息”时,我希望使用更简单的格式。 例如: 在此示例中,我希望以不同的方式打印错误的格式: 是否可以在没有多个日志记录对象的情况下针对不同的日志级别使用不同的格式?我宁愿在创建记录器后就不修改它,因为有大量的

  • 我目前正在尝试降低我在java项目中使用的PDFBox 1.8.6库的日志记录级别,但失败了。基于前面的问题,我在 /src/目录中有以下log4j.properties文件。 我不确定我还遗漏了什么,因为我仍然在控制台中收到类似以下消息的垃圾邮件。 如果有一种方法可以通过编程方式更改日志级别,那么我根本不会附加到属性文件,因为我在其他任何地方都不使用log4j。我不知道它是否使用log4j。属性

  • 是否有可能在Logback中确定将日志消息发送到附加器的实际日志记录程序?示例: 但是不会返回不同的实例。背景:我有一个appender将日志消息发送到WebSocket。这个appender应该能够“订阅”不同的记录器(基本上像XML中的记录器)。该网页将在不同的选项卡(“通道”)中显示日志消息。