zoukankan      html  css  js  c++  java
  • 日志的使用

    一 什么是日志框架

      1.是一套能实现日志输出的工具包

      2.能够描述系统运行状态的所有时间和内容都可以算作日志

    二 日志框架的能力

      1.定制输出能力

      2.定制输出格式

      3.携带上下文信息

      4.运行时选择性输出

      5.灵活的配置

      6.优异的性能

      这些特性都是System.out所不具备的

    三 常见的日志框架

      日志框架分类:日志门面和日志实现

      日志门面:JCL,SLF4J,jboss-loggins

      日志实现:Log4j,Log4j2,Logback

      这么多框架我们使用哪一套呢,其实也简单,Log4j,Log4j2和Logback是同一个作者,作者认为Log4j太烂不想修改,所以直接重写了一个Logback。而Log4j2反而因为设计太超前,以至于很多性能我们平时都用不到,所以也不建议使用。SLF4J的作者也是Logback的作者,而且很多框架都使用了SLF4J + Logback的组合,因此它就是目前的最佳日志框架组合了

    四 SLF4J和Logback的使用

      下面的测试代码都是使用idea编写的

      1.基本用法

    //基于springboot的单元测试
    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringBootTest
    public class LoggerTest {
        //获取日志实例
        private Logger logger = LoggerFactory.getLogger(LoggerTest.class);
    
        @Test
        public void test1() {
            //输出日志
            logger.debug("debug...");
            logger.info("info...");
            logger.error("error...");
        }
    
    }

      该用法有一个很明显的缺陷就是每个需要日志输出的类都要写一次

    private Logger logger = LoggerFactory.getLogger(LoggerTest.class);
    

       很麻烦,下面使用一种注解的方式来改进代码

      2.注解用法

      首先要添加lombok依赖

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>

      然后在类上添加@Slf4j注解(如果你idea版本过低会导致log变量找不到,需要安装lombok插件)

    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringBootTest
    //添加该注解即可
    @Slf4j
    public class LoggerTest {
    
        @Test
        public void test2() {
            //日志对象名变为了log
            log.debug("debug...");
            log.info("info...");
            log.error("error...");          
        }
    }

      3.日志中输出变量

    @Slf4j
    public class LoggerTest {
        @Test
        public void test3() {
            //一般写法
            String name = "logback";
            String password = "123";
            log.info("一般写法 name:" + name + ", password:" + password);
    
            //占位符写法,用{}占位符代替变量
            log.info("占位符写法 name:{}, password:{}", name, password);
        }
    }

      4.logback的配置

        logback的配置可以分为属性文件配置和xml文件配置,前者配置简单,功能也简单,后者反之

        属性文件application.properties中简单配置

    #日志输出格式配置
    logging.pattern.console=%d - %msg%n
    #配置日志路径
    logging.path=/var/log/tomcat/
    #配置日志路径下的日志文件名
    logging.pattern.file=/var/log/tomcat/sell/
    #配置日志级别
    logging.level.root=debug
    #配置类的日志级别
    logging.level.top.pancras.SellApplication=error

      基于xml的更多配置参考官网和其他博客……

      https://logback.qos.ch/manual/configuration.html

      https://www.cnblogs.com/warking/p/5710303.html

  • 相关阅读:
    webstorm 取消拖动代码
    可读流
    页面上怎么使用svg
    从element-ui按需引入去探索
    vue组件库用markdown生成文档
    create-react-app中的babel配置探索
    svg 使用中的疑惑点
    express中是如何处理IP的?
    koa中是如何封装获取客户端IP的?
    博客园文章添加目录
  • 原文地址:https://www.cnblogs.com/coffee9527/p/8956681.html
Copyright © 2011-2022 走看看