为项目增加LOG4J2支持&LOG4J2使用如何增加LOG4J2中的几个必须要注意问题

时间:2022-02-21 21:53:31

背景

因为log4j2的占位符的强大便利, 以及log4j2的异步使得日志性能大提升几十倍, 所以要换!

正文

1  检查环境

因为apache官网已经说明, 2和1是水火不容的, 所以项目里面不能有log4j1

因为使用的是maven, 项目中又使用了jxl, 但是jxl又在编译中自动加载了log4j1, 所以刚开始一直以为用的是2, 结果加了{}测试log.info(“{}”, “test”)都打不出来, 才知道不对

2 加入log4j2

这个网上本来很多, 然而这里多来一笔也没什么不妥当

首先maven配置[全文github]

内容:新建文件log4j2.xml

 

3 写测试类

 

运行结果

20:57:03.488 INFO  com.paymoon.demo.log.logtest.main()/12  – Hello, World! hello

就对了.

要注意的点

1  log4j2的环境配置

eclipse中pom如果不看dependency hierarchy的话, 光看jar, 很容易出冲突问题的, 这个以前在csdn博客里面写过, 不过当时用的是myeclipse, 有graf图可以看, 但是在eclipse里面, 只有dependency hierarchy可以看, 但是还是很方便的. 具体点这里

Eclipse maven中jar依赖冲突解决exclude, pom exclude添加接触jar依赖 | 贝明-日月明心 梵册贝叶http://www.paymoon.com/index.php/2015/06/10/eclipse-maven-exclude-pom-exclude-jar/

2 代码中引用的包

测试类中

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

的引用包, 分别是以下两个, 如果有错, 则说明写的不对

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

3 关于log4j2.xml

文件中的配置, 有一些信息一定要有, 否则无法显示日志,

我在添加好这个文件后, 就少加了一句话:

 

结果就一直以为哪里不对

4 多说一句.

log4j2除了xml支持, 还支持json[不过我猜没什么人在用吧?]

新加了一种支持YAML, 不过目前看来并没有什么卵用.

超越XML和JSON:YAML,Java开发人员的新选择 – 51CTO.COM
http://developer.51cto.com/art/200808/85469_all.htm

对了, 不支持prop文件.