我想出如何将它们放在一起 . 我有一个log4j2.xml(不是log4j.xml)文件设置与 Logger "Selenium" . 在DefaultPage中,我尝试从配置文件 LogManager.getLogger("Selenium")
获取名为Selenium的Logger .
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调用这个 Logger ,这些在STDOUT中看不到 . 当我调试 Logger 的级别是ERROR,而不是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 . 使用','而不是'.'修改日期格式(毫秒)
2 回答
Log4J2将在类路径中查找名为
log4j2.xml
的配置文件 . 如果找不到此文件,它将尝试一些替代方法(请参阅配置手册页),但默认情况下无法识别log4j.xml
. (可以告诉log4j2将一些指定的文件作为配置:http://logging.apache.org/log4j/2.x/faq.html#config_location)如果未找到配置文件,则会安装一个默认配置,该配置会将ERROR和更高的事件记录到StdErr .
我怀疑这是发生了什么 . 解决此问题的最简单方法是重命名配置文件
log4j2.xml
并将其放在类路径中 . 然后,您可以通过指定<Configuration status="trace">
来启用log4j2内部日志记录,以便在必要时进一步进行故障排除 .老问题,但我会回答,以防有人一直在寻找如何解决这个问题 .
正如TIMBERings所说,建议将文件放在Resources文件夹中 . 如果您正在使用eclipse,则需要将Resources文件夹添加到Java Build Path的源代码中 .
没有必要指定
<Configuration status="trace">
,_1183726就足够了 .您可以在ss和SSS _1183729之间放置"."或","(它只是格式化) .
问候 .