默認(rèn)情況下狂票,Spring Boot會(huì)用Logback來記錄日志,并用INFO級(jí)別輸出到控制臺(tái)。并且默認(rèn)spring Boot自動(dòng)加載了Logback依賴劳秋,無需手動(dòng)引用任何依賴.
日志級(jí)別優(yōu)先級(jí)
- TRACE < DEBUG < INFO < WARN < ERROR < FATAL
logBack的公共配置
- 默認(rèn)Spring Boot配置日志輸出到控制臺(tái),并沒有輸出到日志文件
- 我們可以手動(dòng)修改application.yml配置文件栗柒,新增內(nèi)容如下:
注意:日志配置, path和file不能同時(shí)使用礁扮,如果要同時(shí)使用則logging.file生 效,logging.path失效logging: pattern: #日志格式化 console: "%d - %msg%n" path: /var/log/spring file: /var/log/spring/lxf.log #針對(duì)固定包下信息規(guī)定日志級(jí)別 level: com.example.readinglist: info
代碼測(cè)試
- HelloWorld.java
package com.example.readinglist.controllers; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloWorld { private final Logger logger = LoggerFactory.getLogger(HelloWorld.class); @GetMapping(value = "/hello") public String testHello() { //日志級(jí)別從低到高分為TRACE < DEBUG < INFO < WARN < ERROR < FATAL瞬沦,如果設(shè)置為WARN太伊,則低于WARN的信息都不會(huì)輸出。 logger.trace("日志輸出 trace"); logger.debug("日志輸出 debug"); logger.info("日志輸出 info"); logger.warn("日志輸出 warn"); logger.error("日志輸出 error"); return "hello world!"; } }
自定義xml文件詳細(xì)配置logBack
- 自定義xml文件配置會(huì)覆蓋掉application.yml中的logging相關(guān)配置
-
logback-spring.xml
配置文件放在src/main/resources
目錄下逛钻,內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>logback-demo</contextName>
<!--<property name="logback.logdir" value="/home/lxf/test/logs"/>
<property name="logback.appname" value="app"/>-->
<!--application.yml 傳遞參數(shù)僚焦,不能使用logback 自帶的<property>標(biāo)簽 -->
<springProperty scope="context" name="logback.appname" source="logback.appname"/>
<springProperty scope="context" name="logback.logdir" source="logback.logdir"/>
<!--輸出到控制臺(tái) 自定義配置 ConsoleAppender-->
<appender name="consoleLog1" class="ch.qos.logback.core.ConsoleAppender">
<!--展示格式 layout-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</pattern>
</layout>
<!--
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
-->
</appender>
<!--輸出到日志記錄到文件,自定義配置,該配置會(huì)忽略application.yml中的日志配置logging相關(guān)失效 -->
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--如果只是想要 Info 級(jí)別的日志曙痘,只是過濾 info 還是會(huì)輸出 Error 日志芳悲,因?yàn)?Error 的級(jí)別高,
所以我們使用下面的策略边坤,可以避免輸出 Error 的日志-->
<!--日志名稱芭概,如果沒有File 屬性,那么只會(huì)使用FileNamePattern的文件路徑規(guī)則
如果同時(shí)有<File>和<FileNamePattern>惩嘉,那么當(dāng)天日志是<File>罢洲,明天會(huì)自動(dòng)把今天
的日志改名為今天的日期。即,<File> 的日志都是當(dāng)天的惹苗。
-->
<File>${logback.logdir}/info.${logback.appname}.log</File>
<!--滾動(dòng)策略殿较,按照時(shí)間滾動(dòng) TimeBasedRollingPolicy-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--文件路徑,定義了日志的切分方式——把每一天的日志歸檔到一個(gè)文件中,以防止日志填滿整個(gè)磁盤空間-->
<FileNamePattern>${logback.logdir}/info.${logback.appname}.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--只保留最近90天的日志-->
<maxHistory>90</maxHistory>
<!--用來指定日志文件的上限大小,那么到了這個(gè)值桩蓉,就會(huì)刪除舊的日志-->
<!--<totalSizeCap>1GB</totalSizeCap>-->
</rollingPolicy>
<!--日志輸出編碼格式化-->
<encoder>
<charset>UTF-8</charset>
<pattern>%d [%thread] %-5level %logger{36} %line - %msg%n</pattern>
</encoder>
</appender>
<!--指定最基礎(chǔ)的日志輸出級(jí)別-->
<root level="INFO">
<!--appender將會(huì)添加到這個(gè)loger-->
<appender-ref ref="consoleLog1"/>
<!--<appender-ref ref="fileInfoLog"/>-->
</root>
<!-- 測(cè)試環(huán)境+開發(fā)環(huán)境. 多個(gè)使用逗號(hào)隔開. -->
<springProfile name="test,dev">
<logger name="com.example.readinglist" level="DEBUG" additivity="false">
<!--引用控制臺(tái)輸出樣式-->
<appender-ref ref="consoleLog1"/>
<!--引用文件輸出樣式-->
<appender-ref ref="fileInfoLog"/>
</logger>
</springProfile>
<!-- 生產(chǎn)環(huán)境. -->
<springProfile name="prod">
<logger name="com.example.readinglist" level="INFO" additivity="false">
<appender-ref ref="consoleLog1"/>
<appender-ref ref="fileInfoLog"/>
</logger>
</springProfile>
</configuration>
- application.yml 配置文件內(nèi)容
spring: #引入開發(fā)環(huán)境,在logback-spring.xml中不同環(huán)境淋纲,記錄不同日志級(jí)別信息 profiles: active: dev #配置自定義日志變量信息,在logback-spring.xml中引用 logback: #日志路徑 logdir: /home/lxf/test/logs #日志文件名 appname: lxf-spring-log-test.log
參考文章:
logback 配置詳解(一)——logger院究、root
http://m.blog.csdn.net/inke88/article/details/75007649
slf4j+logback SLF4J和Logback日志框架詳解
http://blog.csdn.net/qq_28893679/article/details/78327952
myslbatis輸出sql語句配置