在開發中,使用maven引入logback-classic依賴,針對logback的配置文件,這里提供一份較詳細的模板。
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <!-- configuration標簽 scan屬性代表logback框架會定時檢測改配置文件是否有發生改動,如果有則更新為最新配置--> <!-- 日志級別:trace < debug < info < warn < error--> <!-- 定義參數常量 --> <property name="log.level" value="debug"/> <!-- 一個日志文件存在的最大時間:30天--> <property name="log.maxHistory" value="30"/> <!-- 日志文件存放的目錄--> <property name="log.filePath" value="${catalina.base}/logs/webapps"/> <!--日志內容格式:年-月-日 時:分:秒.毫秒 [線程名稱] 日志級別 --> <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/> <!-- 控制台設置 --> <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${log.pattern}</pattern> </encoder> </appender> <!-- DEBUG --> <appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 文件路徑 --> <file>${log.filePath}/debug.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 文件名稱 --> <fileNamePattern>${log.filePath}/debug/debug.%d{yyyy-MM-dd}.log.gz </fileNamePattern> <!-- 文件最大保存歷史數量 --> <maxHistory>${log.maxHistory}</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> <!-- 過濾非debug級別的日志--> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>DEBUG</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- INFO --> <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 文件路徑 --> <file>${log.filePath}/info.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 文件名稱 --> <fileNamePattern>${log.filePath}/info/info.%d{yyyy-MM-dd}.log.gz </fileNamePattern> <!-- 文件最大保存歷史數量 --> <maxHistory>${log.maxHistory}</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- ERROR --> <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 文件路徑 --> <file>${log.filePath}/erorr.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 文件名稱 --> <fileNamePattern>${log.filePath}/error/error.%d{yyyy-MM-dd}.log.gz </fileNamePattern> <!-- 文件最大保存歷史數量 --> <maxHistory>${log.maxHistory}</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <logger name="com.example.demo" level="${log.level}" additivity="true"><!--logger name屬性指定為項目的包名,additivity="true"表示logger繼承root,可以將日志輸出到控制台--> <appender-ref ref="debugAppender"/> <appender-ref ref="infoAppender"/> <appender-ref ref="errorAppender"/> </logger> <root level="info"> <appender-ref ref="consoleAppender"/> </root> </configuration>