Ⅱ又贝人韦 Ⅱ又贝人韦
首页
JAVA
Golang
  • Spring
  • 日志框架
  • MySQL
  • 全链路跟踪
  • 资源
  • MAC使用技巧
GitHub (opens new window)
首页
JAVA
Golang
  • Spring
  • 日志框架
  • MySQL
  • 全链路跟踪
  • 资源
  • MAC使用技巧
GitHub (opens new window)
  • Spring
  • 日志框架

    • JAVA日志框架介绍
    • LOG4J使用技巧
      • SLF4J和Java SPI
    • 开源框架
    • 日志框架
    shixw
    2021-10-03
    目录

    LOG4J使用技巧

    # log4j1

    • maven依赖
    <dependency>
         <groupId>log4j</groupId>
         <artifactId>log4j</artifactId>
         <version>1.2.16</version>
    </dependency>
    
    1
    2
    3
    4
    5
    • 使用样例
    import org.apache.log4j.Logger;
    
    public class Log4j1Demo {
        private static Logger logger = Logger.getLogger(Log4j1Demo.class);
        public static void main(String[] args) {
            logger.debug("=================");
            logger.info("=================");
            logger.warn("=================");
            logger.error("=================");
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    # log4j1+slf4j

    • maven依赖
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.16</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.6.6</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.6.6</version>
            </dependency>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    • 样例代码
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    public class Log4j1Slf4jDemo {
        private static Logger logger = LoggerFactory.getLogger(Log4j1Slf4jDemo.class);
        public static void main(String[] args) {
            logger.debug("=================");
            logger.info("=================");
            logger.warn("=================");
            logger.error("=================");
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    # log4j2

    使用Log4j2时需要将log4j1的jar包依赖去掉

    • maven依赖
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.11.2</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.11.2</version>
      </dependency>
      <dependency>
         <groupId>com.lmax</groupId>
         <artifactId>disruptor</artifactId>
         <version>3.3.4</version>
      </dependency>  
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    • 样例代码
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
    
    public class Log4j2Demo {
        private static Logger logger = LogManager.getLogger(Log4j2Demo.class);
        public static void main(String[] args) {
            logger.debug("=================");
            logger.info("=================");
            logger.warn("=================");
            logger.error("=================");
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    # log4j2+slf4j

    • maven依赖
     <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.11.2</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.11.2</version>
      </dependency>
      <dependency>
         <groupId>com.lmax</groupId>
         <artifactId>disruptor</artifactId>
         <version>3.3.4</version>
      </dependency>  
      <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-slf4j-impl</artifactId>
         <version>2.11.2</version>
      </dependency>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    • 样例代码 和 log4j1+slf4j 的代码基本一致
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    public class Log4j2Slf4jDemo {
        private static Logger logger = LoggerFactory.getLogger(Log4j2Slf4jDemo.class);
        public static void main(String[] args) {
            logger.debug("=================");
            logger.info("=================");
            logger.warn("=================");
            logger.error("=================");
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    # log4j2和log4j1桥接

    适用于原来项目中使用了 log4j1 的api升级log4j2的场景

    • maven 依赖,将log4j1的依赖删除,增加log4j2的依赖包以及以下的桥接包
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-1.2-api</artifactId>
        <version>2.11.2</version>
      </dependency>
    
    1
    2
    3
    4
    5
    • 样例代码
    import org.apache.log4j.LogManager;
    import org.apache.log4j.Logger;
    
    public class Log4j12Demo {
        private static Logger logger = Logger.getLogger(Log4j12Demo.class);
        private static org.apache.logging.log4j.Logger logger2= org.apache.logging.log4j.LogManager.getLogger(Log4j12Demo.class);
        public static void main(String[] args) {
            logger.debug("=================");
            logger.info("=================");
            logger.warn("=================");
            logger.error("=================");
            logger2.debug("=================");
            logger2.info("=================");
            logger2.warn("=================");
            logger2.error("=================");
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    编辑 (opens new window)
    上次更新: 2021/10/03, 23:00:07
    JAVA日志框架介绍
    SLF4J和Java SPI

    ← JAVA日志框架介绍 SLF4J和Java SPI→

    最近更新
    01
    相关资源
    11-23
    02
    Java线程池常用配置
    07-23
    03
    binlog常用操作命令
    07-23
    更多文章>
    Theme by Vdoing | Copyright © 2021-2022 shixw | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式