Я пытаюсь настроить log4j2 в своей структуре Geb. На всю жизнь я не могу понять, как собрать это вместе. У меня есть файл log4j2.xml (не log4j.xml) с регистратором "Selenium". В DefaultPage я пытаюсь получить Logger с именем Selenium из файла конфигурации LogManager.getLogger("Selenium")
.
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
Спасибо.
EDIT Замена log4j на log4j2. Добавление статуса конфигурации = TRACE. Изменен формат даты для миллисекунд с ',' вместо '.'
%d{HH:mm:ss,SSS}
(обратите внимание на запятая вместо.
для миллисекунд) - person dmahapatro   schedule 01.03.2014