java Log4j2无法将日志写入文件
我试图使用log4j2将日志语句写入控制台和日志文件。但是,当我检查日志文件夹时,没有创建任何内容
其想法是使用RoutingAppender将每个包的所有测试类放在一个文件夹中
这是log4j2。xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Properties>
<Property name="LOG_PATTERN">%d{HH:mm:ss.SSS} [%t] %-5level [%5X{tId}] %logger{36} - %msg%n</Property>
</Properties>
<Appenders>
<Routing name="MyRoutingAppender">
<Routes pattern="$${ctx:threadName}">
<Route>
<RollingFile
fileName="logs/${ctx:testGroupName}/${ctx:threadName}.log"
name="appender-${ctx:threadName}"
filePattern="logs/${date:yyyy-MM}/${ctx:threadName}-%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="6" modulate="true" />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
</RollingFile>
</Route>
</Routes>
</Routing>
<Console name="LogToConsole" target="SYSTEM_OUT">
<PatternLayout pattern="${LOG_PATTERN}"/>
</Console>
</Appenders>
<Loggers>
<Logger name="TestCases" level="info" additivity="false">
<AppenderRef ref="LogToConsole"/>
<AppenderRef ref="MyRoutingAppender"/>
</Logger>
<Logger name="PageObjects" level="info" additivity="false">
<AppenderRef ref="LogToConsole"/>
<AppenderRef ref="MyRoutingAppender"/>
</Logger>
<Root level="info">
<AppenderRef ref="LogToConsole"/>
</Root>
</Loggers>
</Configuration>
以下是我在java课程中的内容:
package TestCases.Groups;
public class AddDeleteGroup extends TestInit {
private final Logger logger = LogManager.getLogger(AddDeleteGroup.class.getName());
@BeforeClass
public void beforeClass() {
String threadId = String.valueOf(Thread.currentThread().getId());
ThreadContext.put("tId", threadId);
ThreadContext.put("testGroupName", "TestCases.Groups");
ThreadContext.put("threadName", AddDeleteGroup.class.getName());
}
@Test(groups = "test")
public void setUp(){
logger.info("SetUp method for {}", AddDeleteGroup.class.getName());
// do stuffs
}
@Test(dependsOnMethods={"SetUp"})
public void testRunner(){
logger.info("TestRunner method for {}", AddDeleteGroup.class.getName());
// do stuffs
}
控制台显示正在打印的日志语句,但当我检查日志文件夹时,我什么也看不到
如果有人知道我做错了什么,请帮帮我。提前谢谢
# 1 楼答案
这是给你的。我试过了,效果很好
JAVA - Separate log files for threads using log4j2