Selenium——使用Log4j2打印执行日志浅析

Log4j2介绍

  1. Log4j是Apache的一个开放源代码项目,是一个日志操作包。通过使用Log4j,可以指定日志信息输出的目的地,控制每一条日志的输出格式,定义日志信息的级别。所有这功能通过一个配置文件灵活进行配置。

环境准备

  1. 下载zip文件,并解压。下载链接

  2. 把解压后的log4j-api-2.17.2.jarlog4j-core-2.17.2.jar两个文件,添加到eclipse的buildpath中(可以先建一个libs文件,把这两个文件复制粘贴到该文件夹,并右键build path),效果如图显示:
    在这里插入图片描述

功能介绍

xml文件基本内容

默认从error级别开始打印,例如:

package cmo.xhx.demo;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.testng.annotations.Test;

public class Demo1 {
	private static final Logger LOG = LogManager.getLogger();
	String msg = "-----hello";

	@Test
	public void test1() {
		LOG.trace("trace" + msg); // 最低级别,通常不会使用
		LOG.debug("debug" + msg);// 开发环境上用
		LOG.info("info" + msg);// 线上、生产环境上用
		LOG.warn("warn" + msg);
		LOG.error("error" + msg);
		LOG.fatal("fatal" + msg); // 最高级别

	}
}

在这里插入图片描述

留下一个链接,上面有更多log4j的资料
https://github.com/apache/logging-log4j2/blob/release-2.x/README.md

我们在src下建一个xml文件,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
    <Console name="Console" target="SYSTEM_ERROR">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Logger name="cmo.xhx.demo" level="INFO"/>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

PatternLayout中可设置相应的输出格式。
console中的name应与AppenderRef中的一致。
Logger中的level值对应从哪一级别开始打印(此文件为从info开始打印)。name值为对应的包名。
效果如下:
在这里插入图片描述

注意

  1. 格式相关信息:(1)%d:打印日志的年月日时分毫秒信息,(2)%c打印类的名称(%level也可), (3)%M:发出日志请求的方法名, (4)%m打印具体的日志信息, (5)%n:输出一个回车换行符。(6)%-5p(左对齐)表示日志的级别,输出优先级(ALL、TRACE、BEGUB、INFO、WARN、ERROR、FATAL、OFF(从低到高级别)
  2. <Logger>的优先级大于Root的,当没有Logger标签时,默认从root中设计的优先级开始打印。
  3. 例如:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
    <Console name="Console" target="SYSTEM_ERROR">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    
    <Root level="trace">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

效果如下:
在这里插入图片描述

指定将结果存到一个文件中:
xml文件内容修改为:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
	<Appenders>
		<Console name="Console" target="SYSTEM_ERROR">
			<PatternLayout
				pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
		</Console>

		<File name="file" fileName="log/mylog">
			<PatternLayout pattern="%d [-%5p] %c - %m%n" />
		</File>
	</Appenders>
	<Loggers>
		<Root level="all">
			<AppenderRef ref="Console" />
			<AppenderRef ref="file" />
		</Root>
	</Loggers>
</Configuration>

添加了<File>、<AppenderRef>,修改了格式。效果如下图:
刷新一下,发现多了一个log文件夹,并且其中的一个mylog文件内容如下图所示:
在这里插入图片描述

和selenium结合使用

在此仅仅浅浅介绍一下。
在这里插入图片描述
如图所示,建立一个conf文件,并在其中建立一个 .properties文件,其中可以写用到的一些基本数据,如浏览器驱动所在位置,保存截屏的地址等等。
在这里插入图片描述
建立一个java文件,用来获取上述文件中的信息。
那么对应的初始化浏览器的java文件,直接通过另一个java类便可获取到信息,完成初始化操作。

提示:静态方法在类实例化之前就可以使用
例如:String browserType = ReadProperties.getValue("browser");

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xuhx&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值