Log4j 基本使用

举报
兮动人 发表于 2021/09/28 09:12:16 2021/09/28
【摘要】 Log4j 基本使用

在这里插入图片描述

1. 概述

  • 介绍
    Log4J 是 Apache 的一个开源项目。通过在项目中使用 Log4J,我们可以控制日志信息输出到控制台、文件、GUI 组件、甚至是数据库中。我们可以控制每一条日志的输出格式,通过定义日志的输出级别,可以更灵活的控制日志的输出过程。方便项目的调试。
  • 官网
    https://logging.apache.org/log4j/2.x/
    在这里插入图片描述

2. 三大组件

  • Log4J主要由Logger(日志记录器)、Appender(输出端)和 Layout(日志格式化器)组成。
  • Logger控制日志的输出级别与日志是否输出;
  • Appender指定日志的输出方式(ConsoleAppender控制台、FileAppender文件、JDBCAppender等);
  • Layout控制日志信息的输出格式(simple格式、HTML格式、PatternLayout自定义格式)。

3. 日志的级别

  • Log4J 在 org.apache.log4j.Level 类中定义了OFFFATALERRORWARNINFODEBUGTRACEALL八种日志级别。
  • 一般只使用4个级别,优先级从高到低为 ERROR > WARN > INFO > DEBUG
    在这里插入图片描述

4. 配置文件 log4j.properties

  • 只需要在项目路径下新建log4j.properties配置文件,并配置日志的输出格式等信息,Log4J框架会自动的加载配置文件,并将配置信息设置到Logger中。
  • 从下往上看,输出的级别为DEBUG,输出名为Console(可以自定义),但要和上面的输出名对应
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

5. 程序中使用Log4j

  • 项目中引入log4j的jar包
  • 添加配置文件log4j.properties
# 控制台输出配置
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %p [%c] - %m%n
# 指定日志的输出级别与输出端
log4j.rootLogger=DEBUG,Console
  • 代码中使用
package com.xdr630.hdfs;

import org.apache.log4j.Logger;

/**
 * @author xdr630
 * @version 1.0
 * @date 2021/4/10 16:15
 */
public class log4jTest {
    public static void main(String[] args) {
        Logger logger = Logger.getLogger(log4jTest.class);
        logger.info("这是info");
        logger.warn("这是warn");
        logger.error("这是error");
        logger.fatal("这是fatal");
    }
}

在这里插入图片描述

  • 也可以把日志输出到文件中
  • 把上面的 log4j.properties 的级别改为 info,输出如下,发现没有 debug 的输出,意味着此时的最低级别就是 infoinfo 以上的都可以输出 ,以下的都不能输出,所以没有 debug 日志的输出。
    在这里插入图片描述
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。