• 在SpringBoot程序中记录日志


    所有的项目都会有日志,日志文件是用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志。具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。这节描述如何用springboot记录日志。


    记录日志的方法

    一般记录日志的方法有两种

    • Commons-logging:
    private static final Log log = logFactory.getLog(Xxxxxx.class);
    
    • SLF4J:
    private static final Logger logger = logFactory.getLogger(Xxxxxx.class);
    

    这两种方法其实都差不多,它们定义log/logger的方法也差不多...


    日志级别

    日志级别共八级,一般我们用到的日志只有中间四级,下面简单介绍一下

    ALL < TEACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF

    ALL 最低等级的,用于打开所有日志记录。

    TRACE 很低的日志级别,一般不会使用。

    DEBUG 指出细粒度信息事件对调试应用程序是非常有帮助的,主要用于开发过程中打印一些运行信息。

    INFO 消息在粗粒度级别上突出强调应用程序的运行过程。打印一些你感兴趣的或者重要的信息,这个可以用于生产环境中输出程序运行的一些重要信息,但是不能滥用,避免打印过多的日志。

    WARN 表明会出现潜在错误的情形,有些信息不是错误信息,但是也要给程序员的一些提示。

    ERROR 指出虽然发生错误事件,但仍然不影响系统的继续运行。打印错误和异常信息,如果不想输出太多的日志,可以使用这个级别。

    FATAL 指出每个严重的错误事件将会导致应用程序的退出。这个级别比较高了。重大错误,这种级别你可以直接停止程序了。

    OFF 最高等级的,用于关闭所有日志记录。

    如果将log level设置在某一个级别上,那么比此级别优先级高的log都能打印出来。例如,如果设置优先级为WARN,那么OFF、FATAL、ERROR、WARN 4个级别的log能正常输出,而INFO、DEBUG、TRACE、 ALL级别的log则会被忽略。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。

    log4j默认的优先级为ERROR

    (以上转自shiyonghm的博客)


    application.yml配置日志

    把下面这段代码copy进去就可以了,但最后一行的com.example是需要改一改的,改成你自己的项目结构目录即可。

    logging:
      file: target/app.log
      level:
        ROOT: WARN
        com.example: TRACE
    

    我这里设置打印了5个等级的信息

    @GetMapping
    public Student getStudent() {
        Student student = new Student(1,"刘大炮",50,new Date());
        log.trace("该学生名为:" + student.getName());
        log.debug("该学生名为:" + student.getName());
        log.info("该学生名为:" + student.getName());
        log.error("该学生名为:" + student.getName());
        log.warn("该学生名为:" + student.getName());
        return student;
    }
    

    再次运行,发现日志等级高于等于TRACE的信息已被打印出来

    若设置为

    logging:
      file: target/app.log
      level:
        ROOT: WARN
        com.example: INFO
    

    再次运行后,发现低于INFO等级的信息都已不再打印

    若设置为OFF

    logging:
      file: target/app.log
      level:
        ROOT: WARN
        com.example: OFF
    

    不再打印任何信息

  • 相关阅读:
    Win10 JDK 配置
    Java Selenium
    Java Selenium
    Eclipse配置Github -分享你的代码
    TestNG-详解preserve-order的作用与测试case的执行顺序
    Java
    VirtualBox 在Win10上的蓝屏问题
    SQL _ Create Procedure
    LINQ 学习路程 -- 查询语法 LINQ Query Syntax
    LINQ 学习路程 -- 开篇
  • 原文地址:https://www.cnblogs.com/zilongmao/p/10261064.html
Copyright © 2020-2023  润新知