我想在我的Geb框架中獲得log4j2安裝程序。對於我的生活,我無法弄清楚如何把它放在一起。我有一個log4j2.xml(不是log4j.xml)文件設置與記錄器「Selenium」。在DefaultPage中,我嘗試從配置文件LogManager.getLogger("Selenium")
中獲取名爲Selenium的Logger。log4j2配置文件未被識別
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="TRACE">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss,SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="Selenium" level="TRACE">
<AppenderRef ref="Console"/>
</Logger>
<Root level="TRACE">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
DefaultPage.groovy
class DefaultPage extends geb.Page {
static content = {
pageId(wait: true) { $("meta", name: "pageId").getAttribute("content") }
pageHeading(wait: true) { $("meta", name: "heading").getAttribute("content") }
}
static final Logger logger = LogManager.getLogger("Selenium")
/**
* Uses jquery to create a mouseover on an element
* @param element The jquery element created in the page object.
*/
static def mouseOver(element) {
logger.error("Hovering over ${element}")
element.jquery.mouseover()
}
}
測試執行和輸出被寫入STDERR,這是預期的,因爲我有logger.error。但是,它不包含該日期的格式。此外,我還有其他類使用.info調用此記錄器,而在STDOUT中沒有看到這些類。當我調試記錄器的級別是錯誤,而不是TRACE。
這是我的文件結構:
functional
|
--src
|
|--test
|
|--groovy
| |
| |--com.x.functional
| |
| |--pages
| |
| |--DefaultPage.groovy
| |--Other classes that want to use log4j2.
|
|--resources
|
|--log4j2.xml
謝謝。
編輯 將log4j更改爲log4j2。添加配置狀態= TRACE。使用','而不是'。'修改日期格式爲毫秒。
[日期模式](http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html)是'%d {HH:mm:ss,SSS}'(注意逗號而不是'.'毫秒) – dmahapatro