zoukankan      html  css  js  c++  java
  • 老系统中log4j切换到logback

    基于SLF4J,可以无缝的将log4j切换到logback。

    1、引入logback依赖

    <slf4j-version>1.7.5</slf4j-version>
    <log4j-over-slf4j-version>1.7.5</log4j-over-slf4j-version>
    <logback-version>1.1.7</logback-version>

    ......
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j-version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
        <version>${log4j-over-slf4j-version}</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>${logback-version}</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback-version}</version>
    </dependency>

    2、删除log4j和slf4j-log4j12依赖

    注意有的jar包可能间接引用了log4j,此时需要exclusions掉,如:

    查找哪些jar包间接引用了log4j:打开pom.xml——>切换到Dependency Hierarchy——>搜索log4j。

    3、将logback.xml加到项目中,保证编译到classpath目录下

    logback.xml例子参考:https://files.cnblogs.com/files/acyouai/logback-example.xml

    系统中log4j.properties无用了,可以删掉

    4、其他问题

    有的系统可能还是用的log4j在打日志,原因可能是maven中部分包间接的引用了log4j的包导致。需要在代码中显示的将log4j的引用改为slf4j。

    • 如果用了lombok,只需将注解@log4j替换为@Slf4j
    • 如果是显示的定义log实例,只需将

    private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class);

    替换为
    private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);

  • 相关阅读:
    cgal 的初步学习
    java 代理类
    java 静态内部类
    HDU-2063-过山车(最大匹配)
    HDU-1845-Jimmy's Assignment
    HDU-1528-Card Game Cheater(二分图匹配)
    HDU-1507-Uncle Tom's Inherited Land*
    HDU-1498-50years,50colors(最大匹配, 枚举)
    HDU-1281-棋盘游戏(最大匹配,枚举)
    HDU-1179-Ollivanders(二分图最大匹配)
  • 原文地址:https://www.cnblogs.com/acyouai/p/8440955.html
Copyright © 2011-2022 走看看