我正在尝试在我的Geb框架中设置log4j2。就我的一生而言,我不知道如何把这些结合起来。我有一个log4j2。使用记录器“Selenium”设置xml(不是log4j.xml)文件。在DefaultPage中,我尝试从配置文件LogManager中获取名为Selenium的记录器。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,这是预期的,因为我有记录器。错误但是,它不支持日期的格式。此外,我还使用其他类调用此记录器。信息和那些在标准输出中看不到。调试时,记录器的级别是错误,而不是跟踪。
以下是我的文件结构:
functional
|
--src
|
|--test
|
|--groovy
| |
| |--com.x.functional
| |
| |--pages
| |
| |--DefaultPage.groovy
| |--Other classes that want to use log4j2.
|
|--resources
|
|--log4j2.xml
非常感谢。
编辑将log4j更改为log4j2。添加配置状态=TRACE。修改了毫秒的日期格式,用','代替'.'
老问题,但我会回答的情况下,有人一直在寻找如何解决这个问题。
正如TIMBERings所说,建议将文件放在Resources文件夹中。如果使用eclipse,则需要将Resources文件夹添加到Java构建路径处的源。
无需指定
您可以将"."或","放在ss和SSS
%d{HH: mm: ss之间。SSS}
(只是格式化)。
当做
Log4J2将查找名为Log4J2的配置文件。类路径中的xml
。如果找不到这个文件,它将尝试一些替代方法(参见配置手册页面),但是log4j。默认情况下,无法识别xml
。(可以告诉log4j2将某些指定的文件作为配置:http://logging.apache.org/log4j/2.x/faq.html#config_location )
如果没有找到配置文件,则会安装一个默认配置,将ERROR和更高级别的事件记录到StdErr。
我怀疑这就是正在发生的事情。最简单的补救方法是重命名配置文件log4j2.xml
并将其放在类路径中。然后,您可以通过指定启用log4j2内部日志记录
我正在尝试使用log4j2记录器登录我的aws lambda函数,但不幸的是找不到log4j2.xml,我只是在CloudTrail日志中看到标准错误消息 “错误状态记录器未找到log4j2配置文件。使用默认配置:仅将错误记录到控制台。” 如果我在本地运行应用程序(在main方法中调用对象方法)一切正常)。我遵循官方的AWS留档,但没有帮助。 可以部署的虚拟项目如下:https://github.
问题内容: 似乎log4j试图通过XML解析器解析.json配置文件,但是为什么呢? 我通过命令行参数设置log4j配置文件: 文件内容: 我得到的是: 我的lib文件夹中的Jar: hamcrest-junit-2.0.0.0.jar jackson-annotations-2.6.1.jar Jackson core-2.6.1.jar jackson-databind-2.6.1.jar j
最近,我决定学习如何使用log4j2记录器。我下载了所需的jar文件,创建了库,xml编译文件,并尝试使用它。不幸的是,我在console(Eclipse)中得到了这样的语句: 这是我的测试类代码: 和我的xml配置文件: 我还尝试使用不带标记的xml,以及包规范和各种文件夹/包目录,但没有帮助。现在我的文件直接位于Eclipse的project文件夹中。
突然之间,网络Storm对我来说不认识Javascript了。 如果我添加这样的文件: 之后我在IDE中看到的是: 如果我刷新,重新启动Webstorm,它仍然无法识别文件!网络Storm已无法使用!
问题内容: 我想把它放在我的pom.xml- 但收到此错误- 我的pom.xml- 问题答案: 您发布的摘录属于标记内。具体来说,它属于Apache Maven Jar插件内部。请参阅下面的示例,以了解您在做什么错。 请参阅此处的Apache Maven Jar插件文档:https : //maven.apache.org/plugins/maven-jar- plugin/index.html
Webstorm 无法将我的一个.js文件识别为 JavaScript 文件,因此我丢失了语法突出显示并能够添加断点。我查看了文件,有问题的文件似乎与其他正常工作的.js文件具有相似的设置。 如果我更改文件名,它可以正常工作。因此,不知何故,Webstorm 陷入了误解具有此名称的文件类型的困境。我还可以在哪里编辑项目?