无法在 Logback 中将 appender 设置为 logger
Posted
技术标签:
【中文标题】无法在 Logback 中将 appender 设置为 logger【英文标题】:Fail to set appender to logger in Logback 【发布时间】:2015-06-14 20:08:07 【问题描述】:我有一个附加文件,并且想将 org.springframwork 和 ch.qos.logback 指向这个日志文件。但是,当我在 linux 服务器上运行我的应用程序时,这两个包的 INFO 消息不会进入日志文件,而是直接打印出来。 这是我的 logback.xml:
<configuration debug="true">
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"/>
<jmxConfigurator/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>log/myfile.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>log/myfile.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>500MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%dISO8601 %-5p [%t] [%c1] - %m%n</pattern>
</encoder>
</appender>
<root level="$log.level:-INFO">
<appender-ref ref="FILE"/>
</root>
<logger name="org.springframework" level="INFO">
<appender-ref ref="FILE"/>
</logger>
<logger name="ch.qos.logback" level="INFO">
<appender-ref ref="FILE"/>
</logger>
08:23:22,446 |-CH.qos.logback.classic.joran.JoranConfigurator@1b83cfe9 中的信息 - 将当前配置注册为安全后备点
2015 年 4 月 9 日上午 8:23:22 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 信息:从类路径资源加载 XML bean 定义 [spring/spring-common.xml]
谁能帮忙指出我的配置有什么问题?谢谢。
顺便说一句:我从 logback 文档中读到我不需要为 logger 设置相同的 appender-ref,否则它将被打印到同一个 appender 中两次。但是我从 logback 调试信息中看到,只有当我为 logger 设置 appender-ref 时,它才会为 logger 设置 appender。
【问题讨论】:
【参考方案1】:ch.qos.logback
的第一个日志输出无法使用日志配置重定向,因为此输出发生在 Logback 读取其配置时 -> hen / egg 样式问题。
要删除这些消息,请在 XML 中使用 debug="false"
。
org.springframework
不使用 Logback,除非您为 org.apache.commons.logging
(这是 Spring 使用的日志框架)安装桥接器。在http://www.slf4j.org/legacy.html的文档中查找jcl-over-slf4j.jar
【讨论】:
spring框架文档对应部分:docs.spring.io/spring/docs/current/spring-framework-reference/… 谢谢@AaronDigulla,org.springframework 信息现在进入我的日志文件。以上是关于无法在 Logback 中将 appender 设置为 logger的主要内容,如果未能解决你的问题,请参考以下文章
logback:logback和slf4j中的:appenderloggerencoderlayout