• java main方法控制日志级别


    背景:

    今天想用main方法去调用http请求,结果已经没什么问题了,但是打印了一大堆Http业务内部的日志信息,特别挡路,导致想看到的业务输出看不到,所以经过多方求证,进行了日志等级处理。

    默认情况下,如果项目中集成了Logback等日志框架,在执行main方法时通过其进行日志打印,那么默认的日志级别是debug的。

    此时,如果是http请求,甚至可以把请求的具体报文信息都打印出来,特别是三方框架的。为了不影响查看正常的日志,可以将main方法的日志级别进行调整。

    此时,配置Logback的logback.xml文件或配置项目的日志输出(比如spring boot)是无效的,只需在类静态代码块中添加以下代码即可。

    1. static {
    2. LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
    3. List<ch.qos.logback.classic.Logger> loggerList = loggerContext.getLoggerList();
    4. loggerList.forEach(logger -> {
    5. logger.setLevel(Level.ERROR);
    6. });
    7. }

    我把我的日志级别调成了error,主要我是做main方法测试,只想看到自己打印的内容

    另附:log日志级别顺序

     OFF | 关闭:最高级别,不打印日志。 
    FATAL | 致命:指明非常严重的可能会导致应用终止执行错误事件。 
    ERROR | 错误:指明错误事件,但应用可能还能继续运行。
    WARN | 警告:指明可能潜在的危险状况。 
    INFO | 信息:指明描述信息,从粗粒度上描述了应用运行过程。 
    DEBUG | 调试:指明细致的事件信息,对调试应用最有用。 
    TRACE | 跟踪:指明程序运行轨迹,比DEBUG级别的粒度更细。 
    ALL | 所有:所有日志级别,包括定制级别。

    所以,日志优先级别标准顺序为:

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

    如果日志级别设置INFO,只有输出级别为INFO、WARNERROR 、FATAL、 OFF等后面的日志才会正常输出。

    建议生产中设置info或者warn,附则容易日志泛滥

  • 相关阅读:
    【概率论基础进阶】随机变量的数字特征-随机变量的数学期望和方差
    bash和sh的区别
    LeetCode --- 1486. XOR Operation in an Array 解题报告
    [附源码]计算机毕业设计基于Springboot游戏交易平台
    RPA+人力资源:打造未来自动化时代的企业新标杆
    Unity之创建第一个2D游戏项目
    流程图画图规范
    接口的触发形式类型有哪些?
    MySql的基础讲解
    Spring 6面向切面编程aop详解
  • 原文地址:https://blog.csdn.net/Alex_81D/article/details/127864512