美文网首页
Springboot项目中写日志很简单

Springboot项目中写日志很简单

作者: V哥带你写程序 | 来源:发表于2020-12-16 13:33 被阅读0次

    Springboot最大的优点是简便。写应用程序需要的常规功能,它都集成进来,做了默认配置。写日志这件事情直接就可以上手。
    例如在springboot项目中的一段测试代码中用日志输出生成的UUID

    package com.jpin.wateraffair.utils;
    
    import org.junit.Assert;
    import org.junit.Test;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    public class UUIDGeneratorTest {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(UUIDGenerator.class);
    
        @Test
        public void genUUID() {
            String uuid = UUIDGenerator.genUUID();
            Assert.assertNotNull(uuid);
            LOGGER.info("uuid:{}", uuid);
            Assert.assertFalse(uuid.contains("-"));
        }
    }
    

    因为我的Springboot项目中使用了spring-boot-starter-web, 根据 Springboot官方文档,这个项目也就引入了 logback的jar包。
    上面的代码中可以引用到org.slf4j.Logger写日志。
    slf4j 和 loggback 是啥关系?

    关于Java的各种日志框架

    实际上Java可用的日志框架和jar有很多,很容易搞蒙。例如 apache的Jakarta Commons Logging、 java自带的Log工具Java Util Logging、log4j、logback等等。

    实际上他们是有渊源的:

    • 最早出来的一套是 Log4j,还有人建议Sun公司把Log4j放到JDK中去,毕竟写日志是基础功能,但是Sun公司没同意。
    • 然后Sun公司按照Log4j的思路,自己搞了一套叫 Java Util Logging
    • 然后Apache跳出来说现在有两套写日志的框架了,写法不一样。我来搞个标准接口,程序员用标准接口就好了。Log4j和JUL作为标准接口的两种实现,可以随时切换。这套标准接口叫 Jakarta Commons Logging
    • 后来写 Commons Logging的程序员Ceki Gülcü 从Apache离职,重新搞了一套接口 slf4j, 比起commons-logging说是又简单又快。和老东家一样支持Log4j和JUL做为接口实现。此外他还新加了一种实现叫 logback
      Ceki Gülcü

    选哪个?

    当然是logback, 既然springboot团队的高手都选了它,我们就不犹豫了。 如果这个理由不充分的话,只能用 logback自己的广告语了,它可靠(Reliable)、速度快(Fast)。


    Logback

    相关文章

      网友评论

          本文标题:Springboot项目中写日志很简单

          本文链接:https://www.haomeiwen.com/subject/ohbngktx.html