Java 与log4j2集成后未在报表门户中反映的日志
我们有一个测试框架(gauge)设置,我们使用slf4j和log4j进行日志记录。最近,我们实现了用于报告目的的报告门户,它可以按预期工作。它显示已执行、已通过、已失败的案例以及其中显示有日志的失败案例 但我似乎无法将日志配置为在启动级别显示。 我是这样说的:https://github.com/reportportal/logger-java-log4j“其中,我配置了log4j2.xml文件,如图所示,但日志未反映在报表门户中。不过,通过更改log4j2.xml文件中的appender,我可以在控制台中打印日志。所以我猜我的设置有问题 这是log4j2.xml文件Java 与log4j2集成后未在报表门户中反映的日志,java,logging,log4j2,gauge,reportportal,Java,Logging,Log4j2,Gauge,Reportportal,我们有一个测试框架(gauge)设置,我们使用slf4j和log4j进行日志记录。最近,我们实现了用于报告目的的报告门户,它可以按预期工作。它显示已执行、已通过、已失败的案例以及其中显示有日志的失败案例 但我似乎无法将日志配置为在启动级别显示。 我是这样说的:https://github.com/reportportal/logger-java-log4j“其中,我配置了log4j2.xml文件,如图所示,但日志未反映在报表门户中。不过,通过更改log4j2.xml文件中的appender,我
<?xml version="1.0" encoding="UTF-8"?>
<configuration packages="com.epam.ta.reportportal.log4j.appender">
<properties>
<property name="pattern">[%d{HH:mm:ss}] %-5p (%F:%L) - %m%n</property>
</properties>
<appenders>
<ReportPortalLog4j2Appender name="ReportPortalAppender">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</ReportPortalLog4j2Appender>
</appenders>
<loggers>
<root level="debug">
<appender-ref ref="ReportPortalAppender"/>
</root>
</loggers>
</configuration>
}
这是log4j.properties文件:
public class AutomationLogger {
private Logger logger;
public static AutomationLogger getLogger(Class loggerClass) {
return new AutomationLogger(loggerClass);
}
private AutomationLogger(Class loggerClass) {
logger = LoggerFactory.getLogger(loggerClass);
}
public void debug(String log, Object... objects) {
log = MessageFormat.format(Thread.currentThread().getStackTrace()[2].getLineNumber() + " - Thread-" + Thread.currentThread().getId() + " [Scenario: {0}] Message: {1} Objects: {2}", Helper.getScenarioNameFromScenarioStore(), log, Arrays.toString(objects));
logger.debug(log);
}
public void info(String log, Object... objects) {
log = MessageFormat.format(Thread.currentThread().getStackTrace()[2].getLineNumber() + " - Thread-" + Thread.currentThread().getId() + " [Scenario: {0}] Message: {1} Objects: {2}", Helper.getScenarioNameFromScenarioStore(), log, Arrays.toString(objects));
logger.info(log);
}
public void error(String log, Object... objects) {
log = MessageFormat.format(Thread.currentThread().getStackTrace()[2].getLineNumber() + " - Thread-" + Thread.currentThread().getId() + " [Scenario: {0}] Message: {1} Objects: {2}", Helper.getScenarioNameFromScenarioStore(), log, Arrays.toString(objects));
logger.error(log);
}
# Root logger option
log4j.rootLogger=DEBUG, console
# Direct log messages to console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%m%n
# Log messages to Report Portal
log4j.appender.reportportal=com.epam.ta.reportportal.log4j.appender.ReportPortalAppender
log4j.appender.reportportal.layout=org.apache.log4j.PatternLayout
log4j.appender.reportportal.layout.ConversionPattern=[%d{HH:mm:ss}] %-5p (%F:%L) - %m%n
AUTOMATION_LOGGER.info("Key=> " + key, "\nExpected Value: " + expectedMap.get(key) + "\nActual Value: " + actualMap.get(key));
我在pom.xml中添加了一个侦听器和一些其他依赖项(这些都添加在正确的位置,这里我只是不按顺序粘贴它们):
我仍然没有看到登录报告门户。只打印堆栈跟踪。“AUTOMATION_LOGGER”语句不会在报表门户中打印。请建议还需要什么
谢谢,
Rahul上面的log4j文件看起来不错 请检查:
如果您正在使用版本为
4.0.2
的logger-java-log4j
(第四版RP的最后一个版本)以及Log4j2,请确保:
packages
属性在配置节点中是必不可少的):
2.12.1
RP的第五版也是如此。@David我添加了一个监听器;请检查更新。够好吗?我没有reportportal.properties文件。我使用gauge framework,并将所有与报表门户相关的属性放在default.properties中。此安装程序正在向报表门户发送数据,但不显示堆栈跟踪以外的日志。这是配置。slf4j-log4j12-1.7.30 logger-java-log4j-5.0.3 RP-5.3.5
AUTOMATION_LOGGER.info("Key=> " + key, "\nExpected Value: " + expectedMap.get(key) + "\nActual Value: " + actualMap.get(key));