1. 程式人生 > >springboot日誌列印的使用demo

springboot日誌列印的使用demo

程式碼地址:https://gitee.com/qlinchao/log_demo.git
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <!-- %m輸出的資訊,%p日誌級別,%t執行緒名,%d日期,%c類的全名,,,, -->
    <property name="LOG_PATH" value="logs"/>
    <!--設定系統日誌目錄-->
    <property name="APPDIR" value="euler_ipc"
/> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder charset="UTF-8"> <!--<pattern>%d %p (%file:%line\)- %m%n</pattern>--> <!--格式化輸出:%d:表示日期 %thread:表示執行緒名 %-5level:級別從左顯示5個字元寬度 %msg:日誌訊息 %n:是換行符-->
<pattern>1-%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger - %msg%n</pattern> <charset>utf-8</charset> </encoder> </appender> <appender name="SYS_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--日誌名稱,如果沒有File 屬性,那麼只會使用FileNamePattern的檔案路徑規則 如果同時有<File>和<FileNamePattern>,那麼當天日誌是<File>,明天會自動把今天 的日誌改名為今天的日期。即,<File> 的日誌都是當天的。 --> <!-- 正在記錄的日誌檔案的路徑及檔名 --> <File>${LOG_PATH}/${APPDIR}/error/error.log</File> <!-- 追加方式記錄日誌 --> <append>true</append> <!--過濾器,只打ERROR級別的日誌--> <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"> <!-- 歸檔的日誌檔案的路徑,例如今天是2013-12-21日誌,當前寫的日誌檔案路徑為file節點指定,可以將此檔案與file指定檔案路徑設定為不同路徑,從而將當前日誌檔案或歸檔日誌檔案置不同的目錄。 而2013-12-21的日誌檔案在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 --> <fileNamePattern>${LOG_PATH}/${APPDIR}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxHistory>15</maxHistory> <!-- 除按日誌記錄之外,還配置了日誌檔案不能超過2M,若超過2M,日誌檔案會以索引0開始, 命名日誌檔案,例如log-error-2013-12-21.0.log --> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>20MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <!-- 日誌檔案的格式 --> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <appender name="SYS_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--日誌名稱,如果沒有File 屬性,那麼只會使用FileNamePattern的檔案路徑規則 如果同時有<File>和<FileNamePattern>,那麼當天日誌是<File>,明天會自動把今天 的日誌改名為今天的日期。即,<File> 的日誌都是當天的。 --> <!-- 正在記錄的日誌檔案的路徑及檔名 --> <file>${LOG_PATH}/${APPDIR}/warn/log_warn.log</file> <!-- 追加方式記錄日誌 --> <append>true</append> <!-- 此日誌檔案只記錄info級別的 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>warn</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <!-- 日誌記錄器的滾動策略,按日期,按大小記錄 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 歸檔的日誌檔案的路徑,例如今天是2013-12-21日誌,當前寫的日誌檔案路徑為file節點指定,可以將此檔案與file指定檔案路徑設定為不同路徑,從而將當前日誌檔案或歸檔日誌檔案置不同的目錄。 而2013-12-21的日誌檔案在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 --> <fileNamePattern>${LOG_PATH}/${APPDIR}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <!-- 除按日誌記錄之外,還配置了日誌檔案不能超過2M,若超過2M,日誌檔案會以索引0開始, 命名日誌檔案,例如log-error-2013-12-21.0.log --> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>20MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <!-- 日誌檔案的格式 --> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern> <charset>utf-8</charset> </encoder> </appender> <appender name="SYS_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--日誌名稱,如果沒有File 屬性,那麼只會使用FileNamePattern的檔案路徑規則 如果同時有<File>和<FileNamePattern>,那麼當天日誌是<File>,明天會自動把今天 的日誌改名為今天的日期。即,<File> 的日誌都是當天的。 --> <!-- 正在記錄的日誌檔案的路徑及檔名 --> <File>${LOG_PATH}/${APPDIR}/info/info.log</File> <append>true</append> <!--過濾器,只打INFO級別的日誌--> <!-- <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter>--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/${APPDIR}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxHistory>15</maxHistory> <!-- 除按日誌記錄之外,還配置了日誌檔案不能超過2M,若超過2M,日誌檔案會以索引0開始, 命名日誌檔案,例如log-error-2013-12-21.0.log --> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>20MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <!--info和error分開列印--> <root level="info"> <appender-ref ref="CONSOLE"/> <appender-ref ref="SYS_INFO"/> <appender-ref ref="SYS_ERROR"/> <appender-ref ref="SYS_WARN"/> </root> <!--以下為預留部分,註釋部分開啟即可,將不同業務邏輯的日誌列印到不同檔案========================================================= --> <!-- 業務日誌--> <appender name="bizLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--<File>${LOG_HOME}/biz.log</File>--> <append>true</append> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/${APPDIR}/biz.log.%d.log</fileNamePattern> <maxHistory>12</maxHistory> </rollingPolicy> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <!-- 系統日誌--> <appender name="sysLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--<File>${LOG_HOME}/sys.log</File>--> <append>true</append> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/${APPDIR}/sys.log.%d.log</fileNamePattern> <maxHistory>12</maxHistory> </rollingPolicy> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <!-- 不同的業務邏輯日誌列印到指定資料夾--> <!--<logger name="bizLog" additivity="false" level="INFO"> <appender-ref ref="bizLogAppender"/> </logger> <logger name="sysLog" additivity="false" level="INFO"> <appender-ref ref="sysLogAppender"/> </logger>--> <!--不同業務邏輯的日誌列印到不同檔案========================================================= --> </configuration>