Log4j2.x相对Log4j1.x来说有了很大的改变,对于一个应用比较广泛的开源软件来说这种改变有些不必要,也不太人性化
准备工作
官方下载页面:http://logging.apache.org/log4j/2.x/download.html 选择Apache Log4j 2 binary 下载,不要选择source文件下载,如果您有兴趣去研究再打包,也未尝不可。(gz和zip只是不同的打包格式,一般linux下面用gz比较多而已,使用winRar软件不管哪种格式都可以搞定)
开始配置
1. 解压后压缩包,选择log4j-api-2.1.jar和log4j-core-2.1.jar导入项目工程
2.参照Log4j2的使用文档,准备一份Log4j的配置文件, 随意命名一下即可,
简单说明
Appenders里面主要配置输出的方式
Loggers主要配置log怎么打
这个log配置,一方面在控制太输出,同时也会打到app.log中,一个文件最大只能6MB,满6MB就开始备份,最多备份10个文件。
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="OFF"> <Properties> <Property name="fileName">app.log</Property> <Property name="backupFilePattern">logs/backup-%i.log</Property> </Properties> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="[%d{ISO8601}] %C{1}(%M:%L): %m%n"/> </Console> <RollingFile name="RollingFile" fileName="${fileName}" filePattern="${backupFilePattern}"> <PatternLayout> <pattern>[%d{ISO8601}] %C{1}(%M:%L): %m%n</pattern> </PatternLayout> <Policies> <SizeBasedTriggeringPolicy size="6MB"/> </Policies> <DefaultRolloverStrategy max="10"/> </RollingFile> </Appenders> <Loggers> <Logger name="com.rsi.remote.deploy.tool.gui.MainUI" level="trace"> <AppenderRef ref="RollingFile"/> </Logger> <Root level="error"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration>
3.配置环境变量,指定log配置的位置 -Dlog4j.configurationFile=file:///C:\logtext.xml(路径必须带有协议file:///,不然会报错)
4.使用的时候,使用LogManager,之前的版本采用的Logger,这也是比较纠结的地方,你说你升级版本就升级版本,你还修改调用方式,像之前可以在源码中配置文件路径,现在只能支持环境变量,如果找不到它会默认去Classpath下面去找几种名为log4j2的文件,有yml,xml等,修改调用方式最大的麻烦在于升级log4j1.x到log4j2.x的过程中,如果你之前的代码调用是直接调用,那就惨了,如果你封装过就相对要好一点,所以说,奉劝各位,如果正常设计工程的时候调用开源项目的时候,最好用自己的代码去封装一遍,这样以后再遇到这种调用方式的问题,直接修改一个文件就好了
static LogManagerlogger = LogManager.getLogger(TestLogger.class.getName());
如果有其他问题可以给我留言