本文為[原創(chuàng)]文章勺拣,轉載請標明出處私痹。
原文鏈接:https://weyunx.com/2019/02/01/springboot-logback/
原文出自微云的技術博客
LogBack 默認集成在 Spring Boot 中酿秸,是基于 Slf4j
的日志框架绷雏。默認情況下 Spring Boot 是以 INFO 級別輸出到控制臺。
它的日志級別是:
ALL < TRACE < DEBUG < INFO < WARN < ERROR < OFF
配置
LogBack 可以直接在 application.properties
或 application.yml
中配置蝠检,但僅支持一些簡單的配置沐鼠,復雜的文件輸出還是需要配置在 xml
配置文件中。配置文件可命名為 logback.xml
, LogBack 自動會在 classpath
的根目錄下搜索配置文件饲梭,不過 Spring Boot 建議命名為 logback-spring.xml
乘盖,這樣會自動引入 Spring Boot 一些擴展功能。
如果需要引入自定義名稱的配置文件憔涉,需要在 Spring Boot 的配置文件中指定订框,如:
logging:
config: classpath:logback-spring.xml
同時 Spring Boot 提供了一個默認的 base.xml
配置,可以按照如下方式引入:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
</configuration>
base.xml
提供了一些基本的默認配置以及在控制臺輸出時的關鍵字配色兜叨,具體文件內(nèi)容可以看這里穿扳,可以查看到一些常用的配置寫法。
詳細配置
變量
可以使用 <property>
來定義變量:
<property name="log.path" value="/var/logs/application" />
同時可以引入 Spring 的環(huán)境變量:
<property resource="application.yml" />
<property resource="application.properties" />
所有的變量都可以通過 ${}
來調(diào)用国旷。
輸出到控制臺
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%.-1level|%-40.40logger{0}|%msg%n</pattern>
</encoder>
</appender>
<logger name="com.mycompany.myapp" level="debug" />
<logger name="org.springframework" level="info" />
<logger name="org.springframework.beans" level="debug" />
<root level="warn">
<appender-ref ref="console" />
</root>
</configuration>
輸出到文件
<property name="LOG_FILE" value="LogFile" />
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每日歸檔日志文件 -->
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
<!-- 保留 30 天的歸檔日志文件 -->
<maxHistory>30</maxHistory>
<!-- 日志文件上限 3G矛物,超過后會刪除舊的歸檔日志文件 -->
<totalSizeCap>3GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
多環(huán)境配置
LogBack 同樣支持多環(huán)境配置,如 dev
跪但、 test
泽谨、 prod
<springProfile name="dev">
<logger name="com.mycompany.myapp" level="debug"/>
</springProfile>
啟動的時候 java -jar xxx.jar --spring.profiles.active=dev
即可使配置生效。
如果要使用 Spring 擴展的 profile 支持特漩,配置文件名必須命名為 LogBack_Spring.xml
吧雹,此時當 application.properties
中指定為 spring.profiles.active=dev
時,上述配置才會生效涂身。
未完待續(xù)...