我在我的 WebUIAuto 项目中使用的是 log4j 2框架进行日志输出。
一、下载相关的 jar 包
https://logging.apache.org/log4j/2.x/download.html
解压得到一系列的 jar 包,将两个关键的 jar 包导入项目中
二、添加配置文件
系统选择配置文件的优先级(从先到后)如下:
配置文件的命名也要参考上图中的规则,我是在resource文件夹下新建了 log4j2.xml 文件
三、配置文件介绍
1.文件结构
-
Configuration
该节点是配置文件的开始,其它节点都在这个节点之下。该节点通过 status 属性指定log4j本身打印日志的级别。优先级从高到低分别是error, warn, info, debug, trace
-
Appenders
该节点通常用来定义日志内容的去向,日志格式等。常见的子节点有Console、RollingFile、File。- Console
用来定义输出到控制台的 Appender。name 属性指定 appender 名字,target 属性指定输出方式,一般为 SYSTEM_OUT,PatternLayout 子节点指定输出格式。例如
- File
用来输出日志信息到文件中。name属性指定appender名字,fileName属性指定文件名及路径,append 属性指定日志内容是否为添加。PatternLayout子节点指定输出格式。例如
- Console
-
Loggers
包括 Root 节点和 Logger 节点- Root节点
指定项目的根日志,必须配置。AppenderRef 指定该日志输出到哪个Appender。例如
- Logger节点
用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。name 属性指定该 Logger 所适用的类或者类所在的包全路径,AppenderRef 节点是 Logger 的子节点,用来指定该日志输出到哪个Appender。
- Root节点
综上,一个 log4j2 的完整xml配置可以如下
<?xml version="1.0" encoding="utf-8"?>
<Configuration status="error" >
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name="file" fileName="target/log.txt" append="false">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="STDOUT"/>
<AppenderRef ref="file"/>
</Root>
</Loggers>
</Configuration>
四、添加代码
配置好了日志文件以后,就可以在代码中加入日志打印语句了,具体实现如下:
首先在类中声明 Logger 对象并导入对应的包
public static Logger logger = LogManager.getLogger(SearchPage.class);
对应的包
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
在方法中添加日志打印语句
logger.debug("input " + keyword);
五、运行并查看结果
控制台中打印了日志信息:
并且在 target 文件夹下出现了 log.txt 文件,打开可以看到日志信息:
扫码关注微信公众号