如果我添加的logback和SLF4J我的Spring MVC(版本4.1.0)项目加入Maven依赖关系是这样的:弹簧+的logback(SLF4J)日志记录无JCL-过SLF4J
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.21</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.7</version>
<scope>runtime</scope>
</dependency>
和排除公地-logging依赖,然后我得到的日志文件中,除了应用程序日志,一些春季活动信息级别,如:
[RMI TCP Connection(4)-127.0.0.1][org.springframework.web.context.ContextLoader] - Root WebApplicationContext: initialization started
如果我添加依赖不JCL-过SLF4J,同时不排除在POM共享记录.xml,那么我只能得到应用程序日志。
这是我logback.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOG_HOME" value="logs" />
<property name="APP_NAME" value="App" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<charset>UTF-8</charset>
<pattern>%-5level %d{yyyy-MM-dd HH:mm:ss.SSS} %thread %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/${APP_NAME}.log.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>%-5level %d{yyyy-MM-dd HH:mm:ss.SSS} %thread %logger{50} - %msg%n</pattern>
</encoder>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
<logger name="org.springframework" level="INFO" appender-ref="FILE"/>
</configuration>
据我了解,这是因为当我不使用JCL桥,的logback不能赶上或转换JCL弹簧内的日志。请纠正我,如果我错了。
我可以配置logback.xml来获取没有JCL桥的标准弹簧日志事件吗?