Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与log4j2集成后未在报表门户中反映的日志_Java_Logging_Log4j2_Gauge_Reportportal - Fatal编程技术网

Java 与log4j2集成后未在报表门户中反映的日志

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,我

我们有一个测试框架(gauge)设置,我们使用slf4j和log4j进行日志记录。最近,我们实现了用于报告目的的报告门户,它可以按预期工作。它显示已执行、已通过、已失败的案例以及其中显示有日志的失败案例

但我似乎无法将日志配置为在启动级别显示。

我是这样说的:https://github.com/reportportal/logger-java-log4j“其中,我配置了log4j2.xml文件,如图所示,但日志未反映在报表门户中。不过,通过更改log4j2.xml文件中的appender,我可以在控制台中打印日志。所以我猜我的设置有问题

这是log4j2.xml文件

<?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文件看起来不错

请检查:

  • 为此执行配置的BaseTestNGListener
  • 资源上存在reportportal.properties文件以及所有相关详细信息

  • 如果您正在使用版本为
    4.0.2
    logger-java-log4j
    (第四版RP的最后一个版本)以及Log4j2,请确保:

  • 您正在使用手册中的配置(
    packages
    属性在配置节点中是必不可少的):
  • 您的Log4j2版本大于或等于:
    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));