springboot日誌工具(lombok)
阿新 • • 發佈:2019-01-02
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();
}
}