zoukankan      html  css  js  c++  java
  • slf4j日志整合框架的一些问题

    概述:

    今天遇到一个问题,现在流程的形式,记录一下解法问题的一些过程,

    你将收获解决常用包日志系统冲突的解决办法:

    Code

    由于要使用log4j所以引入以下依赖

     1 <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
     2         <dependency>
     3             <groupId>org.slf4j</groupId>
     4             <artifactId>slf4j-api</artifactId>
     5             <version>1.7.21</version>
     6         </dependency>
     7         <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
     8         <dependency>
     9             <groupId>org.slf4j</groupId>
    10             <artifactId>slf4j-log4j12</artifactId>
    11             <version>1.7.21</version>
    12         </dependency>

    编写llog4j.properties

     1 # Set specific logger levels.
     2 log4j.logger.org.mortbay.log=fatal
     3 log4j.logger.org.apache.http=fatal
     4 log4j.logger.org.apache.http.headers=fatal
     5 log4j.logger.org.apache.http.wire=fatal
     6 # For HttpClient 3, which is used by FirefoxDriver
     7 log4j.logger.httpclient.wire=fatal
     8 log4j.logger.org.apache.commons=fatal
     9 log4j.logger.com.gargoylesoftware.htmlunit=fatal
    10 log4j.logger.com.gargoylesoftware.htmlunit.WebTestCase=fatal
    11 # Change this to TRACE when enabling the debugger.
    12 log4j.logger.com.gargoylesoftware.htmlunit.javascript.DebugFrameImpl=fatal

    运行test程序:

    发现无论把日志级别提升到多高,甚至关闭,依然运行出现问题,控制台输出大量日志,奇怪,明明定制了输出规范,怎么还会输出日志呢,

    这个时间,我第一想到了就是存在的某个包 引入了日志系统,导致存在多个日志发生冲突, 所以我已存着那个包出现问题,找到了logback这个包,既然我们使用log4j slf4j那么这个两个是不能共存的,所以先排除这个

    1 <exclusion>
    2                     <groupId>ch.qos.logback</groupId>
    3                     <artifactId>logback-core</artifactId>
    4                 </exclusion>
    5                 <exclusion>
    6                     <groupId>ch.qos.logback</groupId>
    7                     <artifactId>logback-classic</artifactId>
    8                 </exclusion>

    然后继续测试,又出现了下面的异常

    读打印的异常,可以看出,出现了反复导致溢出,那么排除它(这里也可以选择调整优先级

    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>log4j-over-slf4j</artifactId>
                    </exclusion>

     最后:这里说一下,虽然很多包提供了日志管理lib,但是还是希望你能够花时间把这些包全部排除,引入自己的包,还有配置文件,这样你的项目在导出到别人那里使用才不会出现太多问题。

  • 相关阅读:
    aircrack-ng 多网卡启动后环境清理
    Docker create image
    预加载(学习一)
    activity+fragment多次切换出现页面空白问题
    万能的Volley
    关于下拉刷新你是否真的非常理解还是只会搬砖?附 Android 实例子源代码文件下载地址380个合集
    如何将Java源代码文件的编码从GBK转为UTF-8?
    如何操作笔记本显得逼格很高?
    跑马灯源代码
    关于java、Android中Math的一些用法
  • 原文地址:https://www.cnblogs.com/dgwblog/p/9350976.html
Copyright © 2011-2022 走看看