springboot日志工具
- Project Lombok官网:https://projectlombok.org/
- github 地址:https://github.com/freefair/gradle-plugins
初体验
- 在spring开发中免不了要记录日志,听说有个lombok非常好用(它当然不止来记日志这么好用)
- 给个例子体验下
@Slf4j
public class WebSocketServer {
public void onOpen() {
log.info("a log");
}
}
- 看到没有,多么简单,只要一个注解@Slf4j,再不用去写LoggerFactory.getLogger()了
- 更多请查阅demo: https://github.com/huweijian5/springboot-demos/tree/master/lombok
使用方法
方式一:可以使用 Lombok Gradle Plugin(推荐)
-
地址:https://plugins.gradle.org/plugin/io.freefair.lombok
-
插件兼容版本说明:
-
在build.gradle中加入如下插件即可(新版写法)
plugins { id "io.freefair.lombok" version "3.2.0" }
-
如果是旧版本,那么写法如下:
buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "io.freefair.gradle:lombok-plugin:3.2.0" } } apply plugin: "io.freefair.lombok"
方式二:不使用插件
- 地址:https://projectlombok.org/setup/gradle
- 在build.gradle引入依赖即可
repositories { mavenCentral() } dependencies { compileOnly 'org.projectlombok:lombok:1.18.6' annotationProcessor 'org.projectlombok:lombok:1.18.6' }
- 如果出现找不到log的错误提示,那就在idea搜索插件lombok进行安装后重启,如果还是出现找不到log的错误,那么就把Enable annotation processing勾选上,如下图
- 如果想知道究竟帮助你生成了什么代码,那么可以在切换到类上,按下Ctrl+F12,即可查看生成的方法
日志工具类
- 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();
}
}
参考
Java 链式编程 和 lombok 实现链式编程 - 我的博客 - CSDN博客
https://blog.csdn.net/xiaojin21cen/article/details/83478929