千家信息网

如何进行Log4j2的简单使用

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本篇文章为大家展示了如何进行Log4j2的简单使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。日志是一个系统经常用到的功能,我们可以在调试的时候依靠日志查看
千家信息网最后更新 2024年09月22日如何进行Log4j2的简单使用

本篇文章为大家展示了如何进行Log4j2的简单使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

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

引入Log4j2

要使用Log4j2,第一步就是先导入它的jar包。如果是普通项目的话,到log4j2官网下载jar包,然后将log4j-api-2.7.jarlog4j-core-2.7.jar添加到你项目的类路径下。

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

然后打开项目,添加以下两句,创建一个Logger并调试一些信息。注意这里的Logger和LogManager两个类的全名分别是org.apache.logging.log4j.LogManagerorg.apache.logging.log4j.Logger。不要和Java自带的java.util.logging下的日志类搞混了。

Logger logger = LogManager.getLogger();logger.debug("5555555");

然后运行一下项目,就可以看到对应的输出了。

日志级别

如果你照着前面的做了,就会发现其实什么输出都没有,只有这么一句话:ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.。这是说因为没找到配置文件,所以使用默认的日志级别,向控制台只输出错误信息。这就引出了一个日志级别的问题。

日志分为几个级别,按照从轻往重如此排列:trace、debug、info、warn、error、fatal。相应的Logger类也有这么几个对应方法,用于输出相应的日志信息。如果我们定义了一个级别,那么低于这个级别的日志不会输出。由于没有配置文件,所以默认情况下的日志级别是error,正如前面的输出那样。这样一来,低于error的日志就不会输出。所以我们回到刚才,将debug方法改为error方法,再次运行项目。这次出现了日志输出。

22:21:58.600 [Test worker] ERROR yitian.bean.BeanTest - 5555555

配置文件

前面已经简单演示了Log4j2的用法。下面就来说说Log4j2的配置文件。Log4j2既可以使用配置文件配置,也可以使用编程方式用代码来配置。这里简单说说配置文件方式。Log4j2支持多种配置文件,XML、JSON、YAML和perperties文件都支持,当然最常用的还是XML文件。将配置文件放在类路径下即可,如果使用Maven或者Gradle的话,就是在resources文件夹下。

前面如果没有配置文件的话,Log4j2就会使用一个默认配置,等效于下面的配置文件。

                                    

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

然后我们再回头看看Appenders节点,其中有这么一段:。这里定义的就是日志的输出格式。下面来简单说说常用的输出格式。

  • %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的记录范围,这样这个日志就会记录两遍。最后,我们用指定使用上面的控制台Appender。

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

                                                                                                    

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

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

自定义Appender

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

                                                                                                                                            

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

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

文件 输出 日志 配置 级别 节点 信息 名称 就是 项目 控制台 方法 控制 运行 两个 程序 内容 所在 文件名 时候 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 门诊查询软件开发风险分析 自动设计logo软件开发 东莞物联网软件开发费用 深圳堂石网络技术 成都创程网络技术有限责任公司 网络安全体验服务 我的世界神奇宝贝服务器下载 杭州科腾网络技术有限公司 最新阿里云服务器管理指南 巴南区航祥网络技术经营部 软件开发注册码 vs登录界面调用数据库 自行查询网络技术的核心产品 刚毕业做软件开发的岗位是什么 网络安全的对策 视频网站如何连接云服务器 如何删除数据库的重复项 网络安全整改备案回函 西安来实慧网络技术有限公司 影响计算机与网络技术发展的因素 端游天刀大区服务器地址 北海网络安全查处 网络安全事件依照法规 计算机网络安全威胁分类 成都电商软件开发哪家便宜 台服魔兽世界服务器 蚂蚁数据库收费 金风科技 信息化 互联网 社区网络安全小视频怎么拍 高淳区第三方软件开发专业服务
0