与Log4J Spring集成类似,有一个Logback Spring integration available here。
只要我使用ConsoleAppender
,所有内容都可以正常工作。但是如上所述将RollingFileAppender
配置为spring bean并在 logback.xml 中注册它是无效的。没有错误,没有日志文件。
这是 logback.xml
<configuration>
<appender name="consoleAppender" class="ch.qos.logback.ext.spring.DelegatingLogbackAppender" />
<appender name="fileAppender" class="ch.qos.logback.ext.spring.DelegatingLogbackAppender" />
<root level="INFO">
<appender-ref ref="consoleAppender" />
<appender-ref ref="fileAppender" />
</root>
<logger name="org.hibernate.type" level="INFO" />
<logger name="org.hibernate" level="INFO" />
</configuration>
此处 spring-context.xml 部分用于注册(仅fileAppender
,另一个正常工作):
<!-- Logback Spring Initialization -->
<bean class="ch.qos.logback.ext.spring.ApplicationContextHolder" />
<bean id="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender" init-method="start" destroy-method="stop">
<property name="context" value="#{ T(org.slf4j.LoggerFactory).getILoggerFactory() }" />
<property name="file" value="/logs/testlog.log"/>
<property name="append" value="true"/>
<property name="encoder">
<bean class="ch.qos.logback.classic.encoder.PatternLayoutEncoder" init-method="start" destroy-method="stop">
<property name="context" value="#{ T(org.slf4j.LoggerFactory).getILoggerFactory() }" />
<property name="pattern" value="%d{yyyy-MM-dd_HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
</bean>
</property>
</bean>
有人遇到过这种配置并指出了什么可能有用或者缺少什么?
pom.xml中的版本:
<spring.version>4.0.9.RELEASE</spring.version>
<slf4j.version>1.7.7</slf4j.version>
<logback.version>1.1.3</logback.version>
<logback-extensions.version>0.1.1</logback-extensions.version>
答案 0 :(得分:1)
因为RollingAppender
缺少TriggeringPolicy
和/或RollingPolicy
配置。
要查看错误配置导致的错误/警告消息,请在debug
中启用logback.xml
模式:
<configuration debug="true">
...
</configuration>