如何进行Log4j2的简单使用

技术如何进行Log4j2的简单使用本篇文章为大家展示了如何进行Log4j2的简单使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。日志是一个系统经常用到的功能,我们可以在调试的时

本文向您展示了如何简单地使用Log4j2。内容简洁易懂。它一定会让你的眼睛发光。希望通过这篇文章的详细介绍,你能有所收获。

日志是系统常用的功能。我们可以在调试的时候通过日志来检查输出,在程序运行的时候通过查看日志来判断程序的运行状态。在Java世界中,有一个非常著名的日志类库——Log4j。现在Log4j也有了新的版本,那就是Log4j2。新版本的好处我就不多说了。让我们开始使用它。

00-1010要使用Log4j2,第一步是导入其jar包。如果是普通项目,可以从log4j2官方网站下载jar包,然后将log4j-api-2.7.jar和log4j-core-2.7.jar添加到自己项目的类路径中。

如果使用Maven或Gradle,查询mvn仓库找到这两个包,然后将它们添加到项目依赖项中。这就完成了准备工作。

然后打开项目,添加下面两句话,创建一个Logger并调试一些信息。请注意,这里的Logger和LogManager类的全名分别是org . Apache . logging . log4j . LogManager和org . Apache . logging . log4j . Logger。不要与java附带的java.util.logging下的log类混淆。

logger logger=logmanager . getlogger();

logger . debug(' 5555555 ');然后运行该项目,您可以看到相应的输出。

00-1010如果您按照前面的步骤操作,您会发现实际上除了一句话之外没有任何输出:错误状态记录器没有找到log4j 2配置文件。使用默认配置:只将错误记录到控制台。这意味着,由于没有找到配置文件,因此使用了默认的日志级别,并且只有错误信息被输出到控制台。这导致了日志级别的问题。

日志分为几个级别,按降序排列:跟踪、调试、信息、警告、错误和致命。相应的Logger类也有几个相应的方法来输出相应的日志信息。如果我们定义一个级别,低于这个级别的日志将不会被输出。因为没有配置文件,默认日志级别是error,就像前面的输出一样。这样,错误下面的日志将不会被输出。因此,让我们返回,将调试方法更改为错误方法,并再次运行项目。这次有日志输出。

2:21336058.600【测试工作者】error yitian . bean . bean test-55555

引入Log4j2

log4j 2的用法已经简单演示过了。我们来谈谈Log4j2的配置文件。Log4j2可以通过配置文件或代码以编程方式进行配置。下面简单说说配置文件的方法。Log4j2支持多种配置文件,包括XML、JSON、YAML和perperties文件。当然,XML文件是最常用的。只需将配置文件放在类路径中,如果使用了Maven或Gradle,则放在资源文件夹中。

如果没有以前的配置文件,Log4j2将使用默认配置,相当于下面的配置文件。

?xmlversion='1.0 '编码='UTF-8 '?Configurationstatus='WARN '

追加器

控制台名称='控制台'目标='系统输出'

PatternLayoutpattern=' % d { hh :mm :s。SSS }[% t]%-5级%logger{36}-%msg%n'/

/Console

/Appenders

记录器

Rootlevel=“错误”

appenderrfref=' Console '/

不间断空格

;</Root>
  </Loggers></Configuration>

配置文件有两个主要的地方,第一个是Appender节点,这个节点下会有很多Appender,也就是我们日志输出的目的地,可以是控制台也可以是某个文件,甚至是专用的远程日志服务器。默认情况下只有一个控制台。第二种重要的节点是Loggers节点,这个节点下可以有很多个Logger,每个Logger可以记录不同的信息,Logger之间也可以共享某些配置。上面定义了一个Root Logger,如果没有指定Logger 的名称或者指定的Logger不存在,就会使用Root,而且Root Logger下的配置默认会被其他Logger继承,除非它们定义了自己的配置。

然后我们再回头看看Appenders节点,其中有这么一段:<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>。这里定义的就是日志的输出格式。下面来简单说说常用的输出格式。

  • %d{HH:mm:ss.SSS} 输出时间,精确度为毫秒。

  • %t 输出当前线程的名称。

  • %-5level 输出日志级别,-5表示左对齐并且固定占5个字符宽度,如果不足用空格补齐。

  • %logger 输出Logger名称,如果是Root的话就没有名称。

  • %msg 日志信息,也就是我们传入的信息。

  • %n 换行。

  • %F 输出所在的文件名。

  • %L 输出行号。

  • %M 输出所在方法名。

  • %l  输出语句所在的位置信息,包括文件名、类名、方法名、行号。

自定义配置

自定义Logger

说了这么多,现在我们就可以开始自定义配置文件了。首先我们来添加一个新的Logger,来记录所有信息,这个Logger的名称就叫做TRACE_ALL吧。这个Logger有两个属性,level指定记录级别,additivity指定传递性。假如传递性指定为true,如果我们现在使用TRACE_ALL记录一个debug级别的日志,由于debug级别也符合Root的记录范围,这样这个日志就会记录两遍。最后,我们用<AppenderRef ref="Console"/>指定使用上面的控制台Appender。

现在配置文件应该是这样。

<?xml version="1.0" encoding="UTF-8"?><Configuration status="INFO">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="Console"/>
        </Root>
        <Logger name="TRACE_ALL" level="trace" additivity="false">
            <AppenderRef ref="Console"/>
        </Logger>
    </Loggers></Configuration>

程序代码是这样的。在调用getLogger的时候指定要使用哪一个Logger。

Logger logger = LogManager.getLogger("TRACE_ALL");
logger.info("5555555");

自定义Appender

除了使用Console作为日志输出目的地之外,我们还可以定义其他的输出,比如文件。下面我们来新建一个文件Appender。在Appenders节点下新建一个File节点,name和fileName属性分别指定Appender名称和目的文件名。然后我们指定TRACE_ALL Logger同时将日志输出到控制台和文件。

<?xml version="1.0" encoding="UTF-8"?><Configuration status="INFO">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <File name="File" fileName="D:\Desktop\mylog.txt">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="Console"/>
        </Root>
        <Logger name="TRACE_ALL" level="trace" additivity="true">
            <AppenderRef ref="File"/>
            <AppenderRef ref="Console"/>
        </Logger>
    </Loggers></Configuration>

再次运行程序,我们就会发现这次在对应的路径下多出一个文件,这个文件的内容就是我们的输出。

上述内容就是如何进行Log4j2的简单使用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/81171.html

(0)

相关推荐

  • Spring中接口注入的三种方式分别是什么

    技术Spring中接口注入的三种方式分别是什么本篇文章为大家展示了Spring中接口注入的三种方式分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Spring中 接口注入

    攻略 2021年10月27日
  • Python代码格式化工具pycodestyle怎么使用

    技术Python代码格式化工具pycodestyle怎么使用本篇内容介绍了“Python代码格式化工具pycodestyle怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学

    攻略 2021年11月29日
  • C语言函数分类自定义参数及调用方法是什么

    技术C语言函数分类自定义参数及调用方法是什么本篇内容主要讲解“C语言函数分类自定义参数及调用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言函数分类自定义参数及

    攻略 2021年11月24日
  • 导致JVM物理内存消耗大的Bug是怎么样的

    技术导致JVM物理内存消耗大的Bug是怎么样的导致JVM物理内存消耗大的Bug是怎么样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。概述最

    攻略 2021年10月23日
  • 亲核取代反应,单分子亲核取代反应的特点

    技术亲核取代反应,单分子亲核取代反应的特点单分子亲核取代反应(unimolecular nucleophilic substitution)是只有一种分子参与了决定反应速率关键步骤的亲核取代反应亲核取代反应,简写为SN1

    生活 2021年10月21日
  • 有哪些VS代码插件

    技术有哪些VS代码插件这篇文章主要介绍“有哪些VS代码插件”,在日常操作中,相信很多人在有哪些VS代码插件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些VS代码插件”的疑惑有所帮助!

    攻略 2021年11月2日