logback使用配置说明
一、web.xml中配置
<context-param>
<param-name>logbackConfigLocation</param-name>
<param-value>/WEB-INF/logback.xml</param-value>
</context-param>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>test.root</param-value>
</context-param>
<listener>
<listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>
</listener>
二、WEB-INF下添加logback.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别 DEBUG INFO WARN ERROR FATAL -->
<configuration>
<property name="APPName" value="test" />
<property name="log.base" value="${test.root}/logs/" />
<jmxConfigurator />
<!-- 禁止控制台不打印 -->
<!-- <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<Encoding>UTF-8</Encoding> <filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch>
</filter> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{yyyy-MM-dd
HH:mm:ss.SSS} [%thread] %-5level %logger.%M - %msg%n </pattern> </layout>
</appender> -->
<!-- 时间滚动输出 level为 DEBUG 日志 -->
<appender name="file—debug"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<Encoding>UTF-8</Encoding>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名 -->
<FileNamePattern>${log.base}/debug.%d{yyyy-MM-dd}-%i.log</FileNamePattern>
<!--日志文件保留天数 -->
<MaxHistory>30</MaxHistory>
<!--日志文件最大的大小 -->
<TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<MaxFileSize>100MB</MaxFileSize>
</TimeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level %logger{80} - %msg%n</pattern>
</encoder>
</appender>
<!-- 时间滚动输出 level为 ERROR 日志 -->
<appender name="file—error"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<Encoding>UTF-8</Encoding>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名 -->
<FileNamePattern>${log.base}/error.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level %logger{80} - %msg%n</pattern>
</encoder>
</appender>
<!--
<appender name="file—info"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<Encoding>UTF-8</Encoding>
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${log.base}/info.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger.%M - %msg%n
</pattern>
</layout>
</appender>
-->
<logger name="java.sql.PreparedStatement">
<level value="DEBUG" />
</logger>
<logger name="java.sql.Connection">
<level value="DEBUG" />
</logger>
<logger name="java.sql.Statement">
<level value="DEBUG" />
</logger>
<logger name="com.ibatis">
<level value="DEBUG" />
</logger>
<logger name="com.ibatis.common.jdbc.SimpleDataSource">
<level value="DEBUG" />
</logger>
<logger name="com.ibatis.common.jdbc.ScriptRunner">
<level value="DEBUG" />
</logger>
<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate">
<level value="DEBUG" />
</logger>
<logger name="org.springframework">
<level value="DEBUG" />
</logger>
<logger name="com.atomikos">
<level value="ERROR" />
</logger>
<logger name="org.mybatis.spring">
<level value="ERROR" />
</logger>
<logger name="org.flywaydb.core.internal">
<level value="ERROR" />
</logger>
<logger name="com.atomikos.datasource.pool.ConnectionPool">
<level value="ERROR" />
</logger>
<logger name="com.atomikos.jdbc.AtomikosConnectionProxy">
<level value="ERROR" />
</logger>
<logger name="org.apache.activemq.transport.AbstractInactivityMonitor">
<level value="ERROR" />
</logger>
<logger name="org.springframework.web.context.ContextLoader">
<level value="ERROR" />
</logger>
<logger name="org.apache.zookeeper.ClientCnxn">
<level value="ERROR" />
</logger>
<logger name="org.redisson.connection.SingleConnectionManager">
<level value="ERROR" />
</logger>
<logger name="org.redisson.CommandExecutorService">
<level value="ERROR" />
</logger>
<logger name="org.apache.zookeeper.ClientCnxn">
<level value="ERROR" />
</logger>
<root level="DEBUG">
<!-- <appender-ref ref="stdout" /> <appender-ref ref="file—info"/> -->
<appender-ref ref="file—debug" />
<appender-ref ref="file—error" />
</root>
</configuration>