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

Log4j“回退”追加器

司寇经亘
2023-03-14

我目前正在对一个相对较大的项目的log4j配置进行微调。目前,我还没有为所有可能创建日志项的位置配置日志级别。

我想让log4j拥有某种回退appender来记录没有为其配置其他appender的所有消息。例如,如果我有一条日志消息:

登录: a. b. c. d: WARN

并且有一个附加程序,配置为用级别INFO记录包a. b. c,然后输出记录到该附加程序。

但是,如果我没有配置appender来处理a.b.c.d,那么应该使用回退。

如果我将我的a.b.c Appender配置为致命级别,那么根本不应该记录任何内容,因为我特意配置了log4j以保留这些消息。

我希望我能够解释我想做什么:-)

有什么建议吗?

克里斯

共有2个答案

安坚诚
2023-03-14

我认为@Keppil似乎混淆了什么。

可加性是在Logger上设置的,它控制父Logger(包括appender)的设置如何传播到Logger。

因此,在OP的情况下,您可以这样做:

Root Logger -> Appender1
Logger a.b.c -> additivity = false, Appender2

这样,a.b.c(及其所有子级)将把日志发送到Appender2,而所有其他记录器将发送到Appender1。

欧阳智志
2023-03-14

如果不想在根记录器中获取所有内容,可以设置

additivity = "false"

在其他伐木者身上。那么日志就不会传播。

 类似资料:
  • 我试图用log4j的JPA Appender保存一些日志事件,我在这里遵循了教程(JPAAppender)。 但是当我测试记录器时,我得到一些关于log4j的log4j错误/警告。特性: 假设问题在log4j。属性文件,有帮助吗??谢谢

  • 当用户从用户界面更改配置时,我想动态地重新加载log4j附加器(RollingFileAppender)。 我已经通过编程删除了追加器,并用新的配置值创建了新的追加器。在此之后,appender broked MaxBackupIndex和MaxFileSize无法正常工作。但是如果我更改了文件名(日志文件名),那么它可以正常工作。 能帮我解决这个问题吗?

  • 我有一个java应用程序,它有三个“形上说”的对象。。。1类动物,1类食物,这些与任何遗传或接口无关。。班级经理的最后一个任务是列出动物和食物的清单,经理负责动物园里的动物和食物。。 说到点子上。。。 我正在使用log4j,我需要登录到一个txt文件,如果并且仅当动物列表中的某些内容发生变化。。。(动物死了,出生了,或者什么的…)我需要登录系统。当且仅当食物清单中的某些东西发生变化时。。。(需要新

  • 我试图在spark executor中使用自定义的log4j appender,以便将所有日志转发到Apache Kafka。 大卫

  • 我很难理解可加性、类别日志级别和追加器阈值之间的关系。 下面的场景(我的log4j.properties文件): null

  • 问题内容: 无法附加到吗? 我正在尝试附加到对象列表。摘录之后的片段是每当作业完成时都会调用的函数。 但是,当我尝试读取它时,我只会得到文件中的第一个。然后我得到java.io.StreamCorruptedException。 要阅读我正在使用 我不知道会出现多少个对象,因此我在阅读时没有例外。根据Google的说法,这是不可能的。我想知道是否有人知道吗? 问题答案: 这是窍门:子类Object