Der*_*har 52 java configuration logback
如何配置Logback以抑制其到控制台的所有输出(标准输出)?特别是,我希望抑制(或重定向)Logback自己的日志消息,如下所示:
16:50:25,814 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
16:50:25,814 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/opt/dap/domains/ap0491/uat1/domain/instance-config/logback.xml]
16:50:25,816 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs multiple times on the classpath.
16:50:25,816 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [file:/opt/dap/domains/ap0491/uat1/domain/instance-config/logback.xml]
16:50:25,816 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [file:/opt/dap/domains/ap0491/uat1/domain/instance-config/logback.xml]
16:50:25,923 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
16:50:25,924 |-INFO in ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter@1a15291 - Will scan for changes in file [/opt/dap/domains/ap0491/uat1/domain/instance-config/logback.xml] every 60 seconds.
Run Code Online (Sandbox Code Playgroud)
我需要禁用所有日志记录到标准输出,因为我们的生产环境不允许应用程序将任何消息打印到标准输出.
注意我正在使用Logback 0.9.21,SLF4J 1.6.0,我们的应用程序在WebLogic 10.3.2中运行.
Tho*_*sen 40
这些消息仅显示以下至少一个是否为真:
纠正问题,这些消息应该消失.
Der*_*har 16
HolgerHoffstätte的诊断是正确的,重复的类路径条目消息是Logback如何计算类路径条目的错误的症状.Robert Elliot还在Logback 用户邮件列表的线程中描述了该问题.根据罗伯特和其他人在这个相关disussion的SLF4J邮件列表上,当使用的logback应用在WebLogic容器中运行,由于在WebLogic类加载器的工作方式,报告的logback对重复的类路径条目logback.xml
配置文件.但是,无论WebLogic类加载器是否应该仅报告唯一的类路径条目,Logback当然应该只计算唯一的类路径条目,以便它不会打印这种令人困惑的虚假消息.
我已经为LBCLASSIC-159实现了一个修复程序,它基本上完成了Robert Elliot所建议的并使用集合而不是列表来保存类加载器返回的资源,从而有效地消除了任何重复的类路径资源.我已成功使用Logback 0.9.24,SLF4J 1.6.1和WebLogic 10.3.2测试了此修复程序.正如Thorbjørn在他的回答中预测的那样,通过此修复,Logback不再向标准输出显示重复的类路径条目状态消息(或任何其他信息性消息).
我希望维护者将我的修复程序集成到主要的Logback 源代码存储库中,并将其包含在下一个版本中.
Car*_*icz 15
这是一个"我也是"的答案,对不起!
令人高兴的是,我在下面找到了一个解决方案(参见更新).
与其他一些答案相反INFO
,尽管在配置阶段没有ERROR
s或WARN
s,但我得到了一个LogBack配置消息流.
这是我的消息:
13:39:20,457 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
13:39:20,457 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
13:39:20,457 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/home/carl/workspace-LSY/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/IceProfile/WEB-INF/classes/logback.xml]
13:39:20,496 |-INFO in ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter@14e2c9c - Will scan for changes in file [/home/carl/workspace-LSY/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/IceProfile/WEB-INF/classes/logback.xml] every 60 seconds.
13:39:20,496 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Adding ReconfigureOnChangeFilter as a turbo filter
13:39:20,497 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
13:39:20,501 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
13:39:20,510 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
13:39:20,510 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Pushing component [encoder] on top of the object stack.
13:39:20,537 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to DEBUG
13:39:20,537 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT]
13:39:20,538 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [ch.qos.logback] to OFF
13:39:20,538 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [ch.qos.logback] to false
13:39:20,538 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
Run Code Online (Sandbox Code Playgroud)
这是我的配置:
<configuration debug="true" scan="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are by default assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
<logger name="ch.qos.logback" level="OFF" additivity="false" />
</configuration>
Run Code Online (Sandbox Code Playgroud)
这是我不想要的垃圾邮件,我认为自己无辜地挑起了它,我会感激一些帮助摆脱它.
我可能"有罪"的一个方面是我在static
变量中初始化我的记录器; 文档建议使用实例变量.
版本:
UPDATE
终于找出了问题所在!
从精细的手册(和Thorbjørn的答案):
在假设的情况下,在元素内设置debug属性将输出状态信息
- 找到配置文件
- 配置文件是格式良好的XML.
我的错误是
<configuration debug="true" scan="true">
Run Code Online (Sandbox Code Playgroud)
回想起来,呃!希望这些信息能够帮助他人.
所以我遇到了同样的问题,但发现删除了不正确的<layout />条目,该条目在0.9.4左右被弃用,消息消失了......
你的appender应该看起来像
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<encoder>
<pattern>%d{yyyy-MM-dd} %d{HH:mm:ss} %.-1level %thread %logger{36}: %m%n</pattern>
</encoder>
</appender>
Run Code Online (Sandbox Code Playgroud)
我在博客上写了一篇关于我改变的更完整的描述
<configuration>
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
</configuration>
Run Code Online (Sandbox Code Playgroud)
简单地使用 NopStatusLinstener 类,这将停止 logback 的自我记录。
归档时间: |
|
查看次数: |
37369 次 |
最近记录: |