1. 程式人生 > >springboot日誌工具(lombok)

springboot日誌工具(lombok)

springboot日誌工具

初體驗

  • 在spring開發中免不了要記錄日誌,聽說有個lombok非常好用(它當然不止來記日誌這麼好用)
  • 給個例子體驗下
@Slf4j
public class WebSocketServer { 
    public void onOpen() {     
        log.info("a log");       
    }
}

  • 看到沒有,多麼簡單,只要一個註解@Slf4j,再不用去寫LoggerFactory.getLogger()了

使用方法

  • 引入依賴即可
dependencies {
	...
	compileOnly('org.projectlombok:lombok'
) }
  • 如果出現找不到log的錯誤提示,那就在idea搜尋外掛lombok進行安裝後重啟,如果還是出現找不到log的錯誤,那麼就把Enable annotation processing勾選上,如下圖
  • 在這裡插入圖片描述

日誌工具類

  • lombok雖好,但我找不到一個可以在日誌加字首的設定,一般情況下我寫的日誌我都會加個字首,來區分是系統產生的日誌還是我寫的日誌,因此提供一個帶有字首的日誌工具類
import org.slf4j.LoggerFactory;

public class Log {

    public static String perfix = "############## ";
public static void error(String msg) { LoggerFactory.getLogger(getClassName()).error(perfix + msg); } public static void error(String msg, Object... obj) { LoggerFactory.getLogger(getClassName()).error(perfix + msg, obj); } public static void warn(String msg)
{ LoggerFactory.getLogger(getClassName()).error(perfix + msg); } public static void warn(String msg, Object... obj) { LoggerFactory.getLogger(getClassName()).error(perfix + msg, obj); } public static void info(String msg) { LoggerFactory.getLogger(getClassName()).info(perfix + msg); } public static void info(String msg, Object... obj) { LoggerFactory.getLogger(getClassName()).info(perfix + msg, obj); } public static void debug(String msg) { LoggerFactory.getLogger(getClassName()).debug(perfix + msg); } public static void debug(String msg, Object... obj) { LoggerFactory.getLogger(getClassName()).debug(perfix + msg, obj); } private static String getClassName() { return new SecurityManager() { public String getClassName() { return getClassContext()[3].getName(); } }.getClassName(); } }