我目前正在对一个相对较大的项目的log4j配置进行微调。目前,我还没有为所有可能创建日志项的位置配置日志级别。
我想让log4j拥有某种回退appender来记录没有为其配置其他appender的所有消息。例如,如果我有一条日志消息:
登录: a. b. c. d: WARN
并且有一个附加程序,配置为用级别INFO记录包a. b. c,然后输出记录到该附加程序。
但是,如果我没有配置appender来处理a.b.c.d,那么应该使用回退。
如果我将我的a.b.c Appender配置为致命级别,那么根本不应该记录任何内容,因为我特意配置了log4j以保留这些消息。
我希望我能够解释我想做什么:-)
有什么建议吗?
克里斯
我认为@Keppil似乎混淆了什么。
可加性是在Logger上设置的,它控制父Logger(包括appender)的设置如何传播到Logger。
因此,在OP的情况下,您可以这样做:
Root Logger -> Appender1
Logger a.b.c -> additivity = false, Appender2
这样,a.b.c(及其所有子级)将把日志发送到Appender2,而所有其他记录器将发送到Appender1。
如果不想在根记录器中获取所有内容,可以设置
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