springboot日志工具(lombok)

springboot日志工具

文章目录

  • springboot日志工具
    • 初体验
    • 使用方法
      • 方式一:可以使用 Lombok Gradle Plugin(推荐)
      • 方式二:不使用插件
    • 日志工具类
    • 参考

  • 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

  • 插件兼容版本说明:
    springboot日志工具(lombok)_第1张图片

  • 在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勾选上,如下图
  • springboot日志工具(lombok)_第2张图片
  • 如果想知道究竟帮助你生成了什么代码,那么可以在切换到类上,按下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

你可能感兴趣的:(spring)