溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何自Spring Boot中使用Logback對(duì)日志進(jìn)行記錄

發(fā)布時(shí)間:2020-11-26 16:33:57 來源:億速云 閱讀:167 作者:Leah 欄目:編程語言

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)如何自Spring Boot中使用Logback對(duì)日志進(jìn)行記錄,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1、為了測(cè)試我們新建兩個(gè)類

package com.xiaofangtech.sunt.controller; 
 
import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
 
import com.xiaofangtech.sunt.helper.LogHelper; 
 
@RestController 
@RequestMapping("log") 
public class LogController { 
  private final Logger logger = LoggerFactory.getLogger(this.getClass()); 
   
  @RequestMapping("writelog") 
  public Object writeLog() 
  { 
    logger.debug("This is a debug message"); 
    logger.info("This is an info message"); 
    logger.warn("This is a warn message"); 
    logger.error("This is an error message"); 
    new LogHelper().helpMethod(); 
    return "OK"; 
  } 
}
package com.xiaofangtech.sunt.helper; 
 
import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
 
public class LogHelper { 
  private final Logger logger = LoggerFactory.getLogger(this.getClass()); 
  public void helpMethod(){ 
    logger.debug("This is a debug message"); 
    logger.info("This is an info message"); 
    logger.warn("This is a warn message"); 
    logger.error("This is an error message"); 
  } 
}

2、運(yùn)行,在瀏覽器中輸入http://localhost:8080/log/writelog 將會(huì)看到以下結(jié)果

如何自Spring Boot中使用Logback對(duì)日志進(jìn)行記錄

我們沒有配置任何其它配置,就可以看到來自logback root logger的輸出信息。雖然默認(rèn)情況下logback是會(huì)打印debug級(jí)別的日志,但是我們注意到debug級(jí)別的日志沒有記錄下來,那是因?yàn)镾pring Boot為Logback提供了默認(rèn)的配置文件,base.xml,另外Spring Boot 提供了兩個(gè)輸出端的配置文件console-appender.xml和file-appender.xml,base.xml引用了這兩個(gè)配置文件。

如何自Spring Boot中使用Logback對(duì)日志進(jìn)行記錄

以下是base.xml的內(nèi)容,我們可以看到,root logger的日志級(jí)別被重寫為Info級(jí)別,這就是上面例子中debug級(jí)別的日志沒有打印的原因

<?xml version="1.0" encoding="UTF-8"?> 
 
<!-- 
Base logback configuration provided for compatibility with Spring Boot 1.1 
--> 
 
<included> 
  <include resource="org/springframework/boot/logging/logback/defaults.xml" /> 
  <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/> 
  <include resource="org/springframework/boot/logging/logback/console-appender.xml" /> 
  <include resource="org/springframework/boot/logging/logback/file-appender.xml" /> 
  <root level="INFO"> 
    <appender-ref ref="CONSOLE" /> 
    <appender-ref ref="FILE" /> 
  </root> 
</included>

3、通過application.properties文件對(duì)Logback進(jìn)行配置

如何自Spring Boot中使用Logback對(duì)日志進(jìn)行記錄

logging.file=log.log 
logging.level.com.xiaofangtech.sunt.controller = debug 
logging.level.com.xiaofangtech.sunt.helper = warn

配置記錄日志到log.log,com.xiaofangtech.sunt.controller日志級(jí)別為debug,.com.xiaofangtech.sunt.helper中日志級(jí)別為warn

我們將會(huì)看到以下結(jié)果,按照配置的日志級(jí)別進(jìn)行記錄。

如何自Spring Boot中使用Logback對(duì)日志進(jìn)行記錄

并且可以看到日志記錄到了日志文件中

如何自Spring Boot中使用Logback對(duì)日志進(jìn)行記錄

4、通過額外的文件配置Logback

通過application.properties文件配置Logback,對(duì)于大多數(shù)Spring Boot應(yīng)用來說已經(jīng)足夠了,但是對(duì)于一些大型的企業(yè)應(yīng)用來說似乎有一些相對(duì)復(fù)雜的日志需求。在Spring Boot中你可以在logback.xml或者在logback-spring.xml中對(duì)Logback進(jìn)行配置,相對(duì)于logback.xml,logback-spring.xml更加被偏愛。下面我們以logback-spring.xml為例。

新建logback-spring.xml,配置輸出的日志都為warn級(jí)別

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
  <include resource="org/springframework/boot/logging/logback/base.xml"/> 
  <logger name="com.xiaofangtech.sunt.controller" level="WARN" additivity="false"> 
    <appender-ref ref="CONSOLE"/> 
    <appender-ref ref="FILE"/> 
  </logger> 
  <logger name="com.xiaofangtech.sunt.helper" level="WARN" additivity="false"> 
    <appender-ref ref="CONSOLE"/> 
    <appender-ref ref="FILE"/> 
  </logger> 
 </configuration>

 運(yùn)行結(jié)果如下:

如何自Spring Boot中使用Logback對(duì)日志進(jìn)行記錄

上述就是小編為大家分享的如何自Spring Boot中使用Logback對(duì)日志進(jìn)行記錄了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI