第一步:在web.xml中指定logbackConfigLocation上下文
<context-param> <param-name>logbackConfigLocation</param-name> <param-value>WEB-INF/logback.xml</param-value> </context-param>
然后在logback.xml中
<?xml version="1.0" encoding="UTF-8" ?> <configuration debug="true" scan="true" scanPeriod="600 seconds"> <!-- appender表示日志输出的方式,该元素必须包含name、classs属性; name,表示appender的唯一标识 class一般常见有ch.qos.logback.core.FileAppender、ch.qos.logback.core.rolling.RollingFileAppender、ch.qos.logback.core.ConsoleAppender --> <!-- 下面appender表示输出到控制台 --> <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> <!-- 设置级别过滤器 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- level级别的日志才会被处理,其他级别不处理 --> <level>DEBUG</level> <!-- 用于配置符合条件的操作 --> <onMatch>ACCEPT</onMatch> <!-- 用于配置不符合条件的操作 --> <onMismatch>DENY</onMismatch> </filter> <!-- encoder指定编码格式,并根据指定的pattern输出日志信息 --> <encoder charset="UTF-8"> <!-- pattern指定日志的输出格式 --> <pattern>%d{HH:mm:ss.SSS}[%-5level][%thread][%logger{20}]-%msg%n</pattern> </encoder> </appender> <!-- 下面是将日志输入到指定的文件中 --> <appender name="file" class="ch.qos.logback.core.FileAppender"> <!-- 指定的日志文件名 --> <file>logFile.log</file> <!-- 是否追加到文件末尾,默认true --> <append>true</append> <encoder> <pattern>%-4r [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <!-- 下面是以滚动的方式生成日志文件 --> <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 下面是设置的临界值过滤器 --> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <!-- 小于level级别的日志会被过滤掉 --> <level>INFO</level> </filter> <!-- rollingPolicy表示滚动策略,下面表示以时间来指定滚动策略 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 如果用TimeBasedRollingPolicy,则fileNamePattern元素必须包含,指定日志的名称 --> <fileNamePattern>E:/demo-%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 文件的最大保留数,超过此数字会自动删除 --> <maxHistory>90</maxHistory> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS}[%-5level][%thread][%logger{20}]-%msg%n</pattern> <!-- 是否立即清空输出流,设置为false可以提高性能,但日志可能会丢失 --> <immediateFlush>false</immediateFlush> </encoder> </appender> <!-- root与logger类似,它表示根logger,只有大于等于level级别的日志才交由appender处理,level默认为DEBUG --> <root level="INFO"> <appender-ref ref="stdout" /> <appender-ref ref="rollingFile" /> <appender-ref ref="file" /> </root> <logger name="com.mchange" level="WARN"/> <logger name="org.hibernate" level="WARN"/> <logger name="org.springframework" level="WARN"/> <!-- logger元素用来设置某包或者类的日志输出级别 name:表示某包或类名称 level:表示日志级别,如果没有此属性,那么当前的logger会继承上级的日志级别 --> </configuration>