在Grails中,日志记录在Config.groovy文件中设置。可以通过外部属性文件(由grails.config.locations定义)覆盖这些属性。
我的问题是:如何通过属性文件更改特定appender的阈值?这是什么属性名称?
我尝试过各种变体:
log4j.appenders.rollingApplicationAppender.threshold=org.apache.log4j.Level.DEBUG
但这并没有成功。
答案 0 :(得分:1)
您似乎对log4j和日志记录存在根本性的误解。你不能做什么,我会解释原因。
记录基于两个概念。 Loggers
和Appenders
。记录器,接收消息,检查这些消息并根据其配置确定是否应将消息发送到appender。 Threshold
是logger
的属性。因此,当消息到达时,它首先由logger
评估,然后发送到appender
。 appender
反过来了解如何将消息写入适当的输出,并且不了解threshold
。
希望这有助于您进一步了解日志记录的工作原理,并引导您完成日常工作。
<强>更新强>
正如评论appenders
中所指出的那样,在threshold
标识为有效的消息后,还可以应用自己的logger
。这使他们能够丢弃消息(常见的用途是在生产中丢弃TRACE用于控制台输出)。考虑到这一点,你在问题中的例子就是这样做。设置threshold
的{{1}},但您没有看到appender
的任何输出,因为您的appender
首先过滤了这些消息。