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
歡迎關注微信交流