【发布时间】:2021-06-29 07:44:15
【问题描述】:
我对 log4j 非常陌生,并且已经在我的代码中实现了它。我无法为我运行的每个测试用例创建单独的日志。 这是我的 XML 文件
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Properties>
<Property name="basePath">./logs</Property>
</Properties>
<Appenders>
<RollingFile name="File" fileName="${basePath}/ICETest.log" filePattern="${basePath}/ICETest-%d{yyyy-MM-dd-HH-mm-ss}.log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
<SizeBasedTriggeringPolicy size="20000" />
</RollingFile>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="all">
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
这就是我在我的类文件中使用它的方式:
public class MyClass extends base {
private static org.apache.logging.log4j.Logger log =LogManager.getLogger(MyClass.class.getName());
@BeforeTest
public void initialize() throws IOException
{
driver =IntializeDriver();
LoginPage l = new LoginPage(driver);
ArrayList d = RE.getData("initialize_ice");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
log.info("Chrome launched successfully");
driver.get((String) d.get(1));
// driver.get(prop.getProperty("url"));
log.info("Page Navigated successfully");
}
@Test
public void MyTest () throws IOException, InterruptedException
{
try
{
LoginPage l = new LoginPage(driver);
//l.getUserName().sendKeys(prop.getProperty("mapcoord"));
l.getUserName().sendKeys((String) d.get(3));
Thread.sleep(1000);
log.info("username entered successfully");
Thread.sleep(1000);
//l.Department().sendKeys(prop.getProperty("Dept"));
l.Department().sendKeys((String) d.get(4));
Thread.sleep(1000);
log.info("Department entered successfully");
}
catch (Exception e) {
System.out.println("Ice page not logged In");
}
}
@AfterTest
public void teardown()
{
driver.close();
log.info("browser closed successfully");
}
}
还有许多其他类文件,现在它创建一个名为 ICETest.log 的日志文件,我希望它为每个类创建一个单独的日志文件作为 classname.log
这里需要做哪些改变?
【问题讨论】:
-
这与我提供了答案的another question 非常相似。在my answer 中,我使用了上下文映射查找,但您可以使用EventLookup 代替。
标签: selenium logging log4j log4j2 java.util.logging