是否有与TestNG连接的log4j appender?

是否有与TestNG连接的log4j appender?,log4j,testng,Log4j,Testng,我使用log4j,并希望在我的单元测试期间,日志消息通常会出现在由TestNG创建的测试报告中 我认为这将意味着一个log4jAppender,它将输出到TestNG监听器,并在我的Maven项目的src/test/resources目录中提供一个适当的log4j配置。对吗 写起来似乎相当容易,但有什么东西我可以通过Maven来实现吗?这篇文章也可以帮助您: “我也遇到了同样的问题,最终自己编写了一个appender。其实很简单: 复制以下类: 公共类TestNGReportAppender扩展

我使用log4j,并希望在我的单元测试期间,日志消息通常会出现在由TestNG创建的测试报告中

我认为这将意味着一个log4j
Appender
,它将输出到TestNG
监听器
,并在我的Maven项目的src/test/resources目录中提供一个适当的log4j配置。对吗


写起来似乎相当容易,但有什么东西我可以通过Maven来实现吗?

这篇文章也可以帮助您:


我也遇到了同样的问题,最终自己编写了一个appender。其实很简单:

复制以下类:

公共类TestNGReportAppender扩展了AppenderSkeleton{
@凌驾
受保护的void append(最终日志事件){
Reporter.log(eventToString(event));
}
私有字符串eventToString(最终日志事件){
最终StringBuilder结果=新StringBuilder(layout.format(事件));
if(layout.ignorestrowable()){
最后一个字符串[]s=event.getThrowableStrRep();
如果(s!=null){
用于(最终字符串值:s){
结果.append(值).append(布局.LINE_SEP);
}
}
}
返回result.toString();
}
@凌驾
公众假期结束(){
}
@凌驾
公共布尔值requiresLayout(){
返回true;
}
}
并将其配置为控制台追加器。例如,像这样:

log4j.appender.testNG=some.package.TestNGReportAppender
log4j.appender.testNG.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.testNG.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%

这个StackOverflow线程可能与您的问题相关:嗯,是的,它有助于我自己编写一些东西,但我正在寻找一个现成的插件或其他东西。不过还是很有用,很有魅力。检查一下图案就行了。它在末尾额外打印%