【问题标题】:log4j.properties doesn't work correctly on wildflylog4j.properties 在 Wildfly 上无法正常工作
【发布时间】:2014-12-16 18:48:06
【问题描述】:

我在类路径中有一个 log4j.properties 文件。

在 APP/XX.jar/log4j.properties 位置找到。

我注意到在 ear 文件中我还可以在 lib 文件夹中找到 log4j-1.2.17.jar。

但是无论我在 log4j.properties 文件中写了什么,它们都被忽略了。喜欢:

log4j.rootCategory=WARN

或者是这样的:

log4j.rootCategory=INFO, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.logger.org.springframework=WARN

但是所有的日志仍然会打印在服务器上。

是我配置错误还是我的 Wildfly 忽略了这个属性文件?

【问题讨论】:

  • 好吧,它们当然会打印在服务器上。这就是程序运行的地方。无论如何,服务器通常会将控制台输出重定向到文件,因此这可能无济于事。你遇到的实际问题是什么?你没有得到任何日志输出吗?
  • @Kayaman 嗨,我想隐藏所有信息,但请阅读警告、错误和标准输出。但现在我仍然看到所有的信息,当然还有其他的输出。我该怎么办?谢谢:)
  • 您是否考虑过将属性也移动到 EAR 内部(但在 JAR 外部)?

标签: java logging log4j wildfly


【解决方案1】:

鉴于属性文件的位置,它会被忽略。如果 log4j.properties 文件位于 EAR/META-INF 目录中,那么 WildFly 将尝试为您配置 log4j。建议不要使用 ConsoleAppender,因为它可能会导致死锁,因为 appender 尝试写入 System.outSystem.out 被包裹在 WildFly 中。

给定配置,这为您提供三个选项。

  1. add-logging-api-dependencies的值更改为false
  2. 添加 jboss-deployment-structure.xml 并在您的部署中禁用日志记录子系统
  3. 通过日志子系统配置日志。这可以在全局范围内完成,也可以通过logging-profile 完成。

【讨论】:

    猜你喜欢
    • 2017-11-25
    • 1970-01-01
    • 2016-12-01
    • 2012-03-15
    • 1970-01-01
    • 2020-08-04
    • 2015-04-02
    • 2016-04-11
    • 2010-12-29
    相关资源
    最近更新 更多