Spring-LogBack筆記(1) - 基礎使用

Spring-LogBack筆記(1) - 基礎使用

Spring內部集成了LogBack的日誌組件

日誌等級分爲6種

public enum LogLevel {

	TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF

}

OFF是關閉日誌

其他6種從低到高分別是

TRACE < DEBUG < INFO < WARN < ERROR < FATAL

FATAL這個比較特殊,log的方法裏面沒有這個方法,指出每個嚴重的錯誤事件將會導致應用程序的退出。這個級別比較高了。重大錯誤,這種級別你可以直接停止程序了

在spring裏面可以通過配置文件對每個類或者包的日誌等級進行控制,低於配置等級的日誌將不會執行

在spring裏面使用日誌打印也很簡單,主要有兩種方式

一種是通過LogFactory

   private Logger logger = LoggerFactory.getLogger(LogController.class);


    private void print(String key) {
        logger.trace("key: {}", key);
        logger.debug("key: {}", key);
        logger.info("key: {}", key);
        logger.warn("key: {}", key);
        logger.error("key: {}", key);
        System.out.println("key: {}" + key);
    }

另外一種通過@Slf4j在類上面的註解可以直接使用,這種需要先引入Lombok的包

private void print(String key) {
        log.trace("key: {}", key);
        log.debug("key: {}", key);
        log.info("key: {}", key);
        log.warn("key: {}", key);
        log.error("key: {}", key);
        System.out.println("key: {}" + key);
    }

這裏就使用@Slf4j在類上面的註解形式在測試

默認配置所有的日誌等級都是info,日誌等級配置不區分大小寫

寫個demo測試一下

@Slf4j
@RestController
@RequestMapping("/log")
public class LogController {

    private void print(String key) {
        log.trace("key: {}", key);
        log.debug("key: {}", key);
        log.info("key: {}", key);
        log.warn("key: {}", key);
        log.error("key: {}", key);
        System.out.println("key: {}" + key);
    }


    @GetMapping("/test")
    public String test(@RequestParam String key) {
        print(key);
        return key;
    }
}

輸出打印

[http-nio-8801-exec-1] INFO  com.mt.demo.client.controller.LogController - key: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
[http-nio-8801-exec-1] WARN  com.mt.demo.client.controller.LogController - key: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
[http-nio-8801-exec-1] ERROR com.mt.demo.client.controller.LogController - key: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
key: {}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

例如配置

logging:
  level:
    com:
      mt:
        demo:
          client:
            controller:
              LogController: error

輸出打印

[http-nio-8801-exec-2] ERROR com.mt.demo.client.controller.LogController - key: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
key: {}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

這種可以配置的方式在生產調試問題的時候還是比較方便的,例如在程序裏打上debug的日誌,需要調試的時候再動態開啓

logging:
  level:
    com:
      mt:
        demo:
          client:
            controller:
              LogController: debug

輸出打印

[http-nio-8801-exec-1] DEBUG com.mt.demo.client.controller.LogController - key: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
[http-nio-8801-exec-1] INFO  com.mt.demo.client.controller.LogController - key: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
[http-nio-8801-exec-1] WARN  com.mt.demo.client.controller.LogController - key: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
[http-nio-8801-exec-1] ERROR com.mt.demo.client.controller.LogController - key: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
key: {}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

歡迎關注微信交流
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章