我们有一个测试框架(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>
我已经添加了以下maven依赖项-slf4japi、logger-java-log4j、-slf4j impl、log4japi、log4j core
如果需要为调试提供更多详细信息,请告诉我。
更新:问题没有解决我已经放弃了这个;但是过了很长一段时间,我不得不回来取。这一次我做了一些改变,这也没有帮助。这是我使用的记录器类:
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);
}
}
这是log4j。属性文件:
# 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
我在pom中添加了一个侦听器和一些其他依赖项。xml(这些文件被添加到正确的位置,在这里我只是毫无顺序地粘贴它们):
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>bintray-epam-reportportal</id>
<name>bintray</name>
<url>http://dl.bintray.com/epam/reportportal</url>
</repository>
<dependency>
<groupId>com.epam.reportportal</groupId>
<artifactId>agent-java-testng</artifactId>
<version>5.0.9</version>
</dependency>
<dependency>
<groupId>com.epam.reportportal</groupId>
<artifactId>logger-java-log4j</artifactId>
<version>5.0.3</version>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<properties>
<property>
<name>usedefaultlisteners</name>
<value>false</value> <!-- disabling default listeners is optional -->
</property>
<property>
<name>listener</name>
<value>com.epam.reportportal.testng.ReportPortalTestNGListener</value>
</property>
</properties>
</configuration>
</plugin>
我在测试中使用记录器,如下所示:
AUTOMATION_LOGGER.info("Key=> " + key, "\nExpected Value: " + expectedMap.get(key) + "\nActual Value: " + actualMap.get(key));
我仍然没有看到登录报告门户。只打印堆栈跟踪。“AUTOMATION_LOGGER”语句不会在报表门户中打印。请建议还需要什么。
谢谢,拉胡尔
如果您正在使用版本为4.0.2
的logger-java-log4j
(第四版RP的最后一个版本)以及Log4j2,请确保:
2.12.1
RP的第5版也是如此。
我正在研究一种方法,将报告日志发送到报告门户,并附上屏幕截图。我正在使用XmlHttpRequest模块访问报表门户日志endpoint。这是我的密码。但是这段代码不起作用,相反,我得到了一条“json\u请求\u部分丢失”的响应消息。我做错了什么,我是按照这里的文件做的
我有一个使用Log4j和Velocity V1.7的web应用程序 这就是我如何集成Log4j和Velocity1.7 显然,没有与log4j2兼容的Log4JLogChute的等价物。 有人知道如何实现Log4j2和velocity之间的兼容性吗?
我从log4j1迁移过来。x到log4j2。我删除了log4j。属性文件并创建了log4j2。xml文件。迁移后,我运行了应用程序,但找不到。日志文件。 有没有人能告诉我
问题内容: 我试图用AngularJS创建一些自定义元素并将一些事件绑定到它,然后我注意到$ scope.var在绑定函数中使用时不会更新UI。 这是描述探针的简化示例: HTML: JS: 演示:http : //plnkr.co/edit/g3S56xez6Q90mjbFogkL?p=preview 基本上,我将事件绑定到用户并想要在用户单击按钮B时进行更改(类似于按钮A上的更改)。但是如果我
我想使用Cognito用户池作为标识提供者。我对我的用户进行身份验证。然后,我尝试通过以下步骤将该用户与用户池中的用户集成: http://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-integration-user-pools-with-identity-pools.html 我已经用绳子代替了敏感的部分。我已
我对Laravel 5中的这种集成有一个问题: JasperPHP. php第178行中的异常:您的报告有错误,无法处理!尝试使用函数输出命令,并在控制台中手动运行它。 发生异常的代码: