2010-07-12 227 views
1

我有一个使用Commons Logging进行日志记录的应用程序。它使用Maven构建,并使用TestNG进行测试。我试图在测试期间微调日志级别,但没有任何运气 - 无论我做什么,一切都设置为INFO。我尝试在类路径上创建一个logging.properties文件,它完全没有。我还创建了一个log4testng.properties文件 - 这个文件正在读取中(我知道这是因为TestNG在故意向其中引入语法错误后显示错误),但其中的设置无效。在TestNG中设置应用程序日志级别

有什么建议吗?


编辑:嗯,我还没有想出了潜在的问题(为什么java.util.logging的是无视我尝试配置它),但我能得到我想要的东西通过使在测试过程中提供的Log4j ,然后配置它。我正在回答这个问题,因为我现在真的不在乎。

回答

-1

麦克,

可以在testng.xml文件调整日志级别:

<suite verbose="3"... (up to 10) 

TestNG的不使用Log4j也不java.util.logging的。

+0

我想你误会了。我不在乎TestNG的日志输出;我关心我的应用程序的输出。 – 2010-07-13 02:13:13

+0

为什么TestNG不使用java.util.properties?这对我来说很愚蠢。使用logging.properties文件来配置java.util.logger类是Java语言广泛接受的标准,TestNG完全忽略了这一点。 – ecbrodie 2013-07-16 14:12:51

+0

TestNG拥有自己完全令人敬畏的Reporter类。如果您需要添加文件日志记录,则可以使用FileAppender将Log4j添加到项目中,否则报告器记录器对于报告和控制台输出就可以了。顺便说一下,“详细的”TestNG选项只有在您记录Reporter.log语句并且包含日志级别参数(每个参数都包含)时才有意义,对吗? – djangofan 2014-03-19 17:39:40

1

我找到了解决方法。创建的src /测试/资源定制logging.properties,然后在建立呼叫,加载它这样:

@BeforeClass(alwaysRun = true) 
protected void setUp() throws SecurityException, IOException 
{ 
    FileInputStream fis = new FileInputStream(BaseRestTest.class.getResource("/logging.properties").getFile()); 
    LogManager.getLogManager().readConfiguration(fis); 
} 

TestNG中已经掠夺后,这似乎重新配置根记录。