侧边栏壁纸
  • 累计撰写 2,046 篇文章
  • 累计创建 73 个标签
  • 累计收到 20 条评论

目 录CONTENT

文章目录

在Java中使用Log4j记录日志

大猿本猿
2021-11-28 / 567 阅读 / 0 字

在Java中使用Log4j记录日志

1、pom.xml

properties标签中定义log4j和slf4j的版本号

<log4j.version>1.2.17</log4j.version>
<slf4j.version>1.7.25</slf4j.version>
标签中定义log4j的jar包

  <!-- log4j start -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <!-- log4j end -->

2、log4j.properties

resources目录下配置log4j.properties文件

image

### 设置日志级别###
log4j.rootLogger = debug,stdout
#log4j.rootLogger = debug,stdout,D,E

### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

#### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
#log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.D.File = E://logs/log.log
#log4j.appender.D.Append = true
#log4j.appender.D.Threshold = DEBUG
#log4j.appender.D.layout = org.apache.log4j.PatternLayout
#log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
#
#### 输出ERROR 级别以上的日志到=E://logs/error.log ###
#log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.E.File =E://logs/error.log
#log4j.appender.E.Append = true
#log4j.appender.E.Threshold = ERROR
#log4j.appender.E.layout = org.apache.log4j.PatternLayout
#log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

3、使用方法

3.1 传统的调用方法

使用private static Logger logger = LoggerFactory.getLogger(TestLog4jClass.class);

演示:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @program: test1
 * @description:
 * @author: Liu Tao
 * @create: 2021-11-16 17:42
 **/
public class TestLog4jClass {

    private static Logger logger = LoggerFactory.getLogger(TestLog4jClass.class);

    public void save(){
        logger.debug("debug日志");
        logger.info("info日志");
        logger.error("error日志");
        logger.warn("warn日志");
    }

}

3.2使用slf4j Lombok注解

加入lombok的依赖

   <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.4</version>
        </dependency>
使用@Slf4j注解,在类名加@Slf4j,方法中默认是log调用。

演示类:

import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @program: test1
 * @description:
 * @author: Liu Tao
 * @create: 2021-11-16 17:42
 **/
@Slf4j
public class TestLog4jClass2 {

    public void save(){
        log.debug("debug日志");
        log.info("info日志");
        log.error("error日志");
        log.warn("warn日志");
    }

}
在Junit中测试输出:

[DEBUG] 2021-11-16 18:02:23,547 method:TestLog4jClass2.save(TestLog4jClass2.java:15)
debug日志
[INFO ] 2021-11-16 18:02:23,549 method:TestLog4jClass2.save(TestLog4jClass2.java:16)
info日志
[ERROR] 2021-11-16 18:02:23,550 method:TestLog4jClass2.save(TestLog4jClass2.java:17)
error日志
[WARN ] 2021-11-16 18:02:23,550 method:TestLog4jClass2.save(TestLog4jClass2.java:18)
warn日志

进程已结束,退出代码0