<springProperty scope="context" name="attr.value" source="spring.attr.value" defaultValue="default"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender>
<appender name="XXX_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${logging.path}/xxx.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${logging.path}/xxx-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxFileSize>100MB</maxFileSize> <maxHistory>30</maxHistory> <totalSizeCap>10GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>%d{MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender>
<springProfile name="prod,release"> <logger name="com.xxx"/> <logger name="com.xxx.xxx" level="WARN" additivity="false"> <appender-ref ref="TIMER_APPENDER"/> <appender-ref ref="STDOUT"/> </logger> </springProfile>
定義一個日誌執行者,用來設置某一個包或者具體的某一個類的日誌打印級別、以及指定 appender-refspring
在實際項目中有不少狀況下須要區分業務模塊來寫入不一樣的日誌文件,而不是隨着其餘日誌混爲一談,尤爲是日誌具備價值的時候,例如埋點日誌,若是都寫在同一個文件裏面,那麼可讀性不好,因此須要把日誌區分出來。sql
舉例說明,例如想把數據的sql日誌統一寫道一個日誌文件中:app
<appender name="DATABASE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_PATH}/db.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/db-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxFileSize>100MB</maxFileSize> <maxHistory>60</maxHistory> <totalSizeCap>20GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>%d{MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <!-- 而後還須要再looger裏面引用 --> <springProfile name="release"> <logger name="xxx.mapper" level="DEBUG" additivity="false"> <appender-ref ref="DATABASE"/> </logger> </springProfile>
root 其實也是一個logger, 只不過是根級的logger, 也就是任意包都會執行,也就是若是不配置logger的時候,所有日誌默認都會走他,或者在logger不配置appender-ref的時候,會繼承root的appender-ref。模塊化