log4j使用详细解析

Log4j使用详细解析

Log4j是Java中常用的日志框架,可以用于控制日志输出的格式、级别、输出目的地等。本文将详细讲解Log4j的使用方法。

1. 引入Log4j依赖

在maven项目中,我们可以在pom.xml中添加以下依赖来引入Log4j:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.14.1</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.14.1</version>
</dependency>

2. 配置Log4j

在项目的资源目录(一般是src/main/resources)中添加一个名为log4j2.xml的配置文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="error">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <RollingFile name="RollingFile" fileName="logs/app.log"
                     filePattern="logs/app.%d{yyyyMMdd}.log.gz">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="RollingFile"/>
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

上述配置文件中,定义了两个Appender: Console和RollingFile。Console用于输出到控制台,RollingFile用于输出到文件。其中,RollingFile使用了RollingFileAppender,当日志文件达到一定大小或一定时间时,会按照一定规则备份并新建日志文件。同时,定义了Root logger的级别为info,表示只输出info及以上级别的日志。如果需要输出debug及以上级别的日志,则将Root logger的级别改为debug即可。

3. 使用Log4j

使用Log4j输出日志非常简单,只需要获取Logger实例,并调用相应的方法即可。例如:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Demo {

    private static Logger logger = LogManager.getLogger(Demo.class);

    public static void main(String[] args) {
        logger.info("hello world");
        logger.warn("warning");
    }
}

上述代码中,我们获取了名为Demo.class的Logger实例,然后分别使用info和warn方法输出日志。

4. 示例

下面给出两个示例说明Log4j的用法。

4.1 示例一

假设我们要打印从1到100的数字,并且要求输出到控制台和日志文件中。代码如下:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Demo {

    private static Logger logger = LogManager.getLogger(Demo.class);

    public static void main(String[] args) {
        for (int i = 1; i <= 100; i++) {
            System.out.println(i);
            logger.info("{}", i);
        }
    }
}

上述代码中,我们遍历1到100的数字,使用System.out.println方法将数字输出到控制台,使用logger.info方法将数字输出到日志文件。

4.2 示例二

假设我们要输出一条错误日志,并将日志级别设置为error。代码如下:

import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Demo {

    private static Logger logger = LogManager.getLogger(Demo.class);

    public static void main(String[] args) {
        String errorMessage = "something wrong";
        logger.log(Level.ERROR, errorMessage);
    }
}

上述代码中,我们将日志级别设置为error,并使用logger.log方法输出错误信息。

5. 总结

本文详细讲解了Log4j的使用方法,包括引入依赖、配置Log4j、使用Log4j以及两个示例的说明。掌握Log4j的使用,可以非常方便地进行日志记录和输出。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:log4j使用详细解析 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • 深入PHP许愿墙模块功能分析

    深入PHP许愿墙模块功能分析 介绍 本篇攻略将深入分析PHP许愿墙模块的功能,并讲解如何在自己的网站中加入这个模块。PHP许愿墙是一款非常实用的应用程序,它可以让用户在页面上写下自己的心愿并与其他用户分享。它由以下几个部分组成: 用户界面 用户界面是指用户看到的网页,它由HTML和CSS构建。用户可以在页面上输入心愿并提交,也可以浏览其他用户发布的心愿。 数…

    html 2023年5月30日
    00
  • Qt读写XML文件的方法详解(含源码+注释)

    首先我们来介绍一下Qt读写XML文件的基本概念。XML(Extensible Markup Language)是一种标记语言,作为一种通用性的标记语言,被广泛应用于存储和传输数据。Qt中提供了用于读写XML文件的模块QXmlStreamReader和QXmlStreamWriter。 一、QXmlStreamReader介绍 QXmlStreamReader…

    html 2023年5月30日
    00
  • HTML5 微格式和相关的属性名称

    HTML5 微格式是指用于表示特定类型数据的 HTML 标记,在页面进行结构化、扩展和语义化时有重要的作用。而与此相关的属性名称是指用于表达微格式中特定意义的属性名称,使得浏览器和搜索引擎可以将页面中的数据转换成标准的格式并更好的理解页面内容。下面是 HTML5 微格式和相关属性名称的详细讲解攻略。 HTML5 微格式 HTML5 微格式是指用于标识网页内容…

    html 2023年5月30日
    00
  • 火币网usdt怎么提现人民币 卖出及充值usdt流程

    以下是在火币网上提现人民币、卖出及充值USDT的详细攻略: 步骤1:登录火币网 打开您的浏览器,访问火币网官方网站(https://www.huobi.com/)。 在网站右上角点击“登录”,输入您的火币网账号和密码,完成登录。 步骤2:提现人民币 在火币网主页中,点击左侧导航栏中的“资产”选项。 在资产页面中,选择“提现”选项。 在提现页面中,选择“人民币…

    html 2023年5月17日
    00
  • HTML表格标记教程(11):水平对齐属性ALIGN

    接下来我将详细讲解“HTML表格标记教程(11):水平对齐属性ALIGN”的完整攻略。 水平对齐属性ALIGN 在HTML表格中,通过水平对齐属性ALIGN可以控制表格中各个单元格的水平对齐方式,属性值为left、center、right三种取值。 left:单元格内内容左对齐; center:单元格内内容居中对齐; right:单元格内内容右对齐。 示例说…

    html 2023年5月30日
    00
  • 通过SQL语句直接把表导出为XML格式

    要将表导出为XML格式,需要使用SQL语句构造XML结构并将其输出。下面是一份简要的攻略: 确认数据库中的表结构,确认每个字段的名称和数据类型。 使用以下模板构造SQL语句,将表导出为XML格式: SELECT ‘xml version="1.0" encoding="UTF-8"’ AS "@xml&quo…

    html 2023年5月30日
    00
  • spacedesk x10怎么用?spacedesk x10安装使用图文教程

    以下是“spacedesk x10怎么用?spacedesk x10安装使用图文教程”的完整攻略: spacedesk x10怎么用?spacedesk x10安装使用图文教程 spacedesk x10是一款用于将Android设备变成第二个显示器的软件。它可以将Android设备变成一个无线显示器,让用户可以在Android设备上扩展或复制PC屏幕。下面…

    html 2023年5月18日
    00
  • Java解析xml的四种方法汇总

    Java解析xml的四种方法汇总 什么是XML XML(Extensible Markup Language)即可扩展标记语言,是一种标记语言,它可以用来标记电子文件使其具有结构性的标记语言。XML用于存储和传输数据。在XML文档中,标签没有被预定义是一种被使用者自定义的标记语言。 解析XML的四种方法 方法一:使用DOM DOM是一种基于树形结构的解析器,…

    html 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部