Wildfly 10 不显示调试消息
Posted
技术标签:
【中文标题】Wildfly 10 不显示调试消息【英文标题】:Wildfly 10 not showing debug messages 【发布时间】:2016-11-15 10:21:43 【问题描述】:我正在容器上测试我的 ear 应用程序,我需要查看一些我在我的应用程序上传播的调试消息。我使用slf4j-api
和log4j
作为日志框架。
在我的测试阶段(在容器外),所有日志记录都运行良好,因此配置很好。但是现在我已经使用相同的配置部署了应用程序,但我的消息没有显示。这是我的 log4j 的配置:
#rootLogger config
log4j.rootLogger=INFO, console
#appender config
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console..threshold=DEBUG
log4j.appender.console.target=System.out
log4j.appender.console.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.console.layout.ConversionPattern=%dABSOLUTE [%t] %p %l - %m%n
# Log JDBC bind parameter runtime arguments
log4j.logger.org.hibernate.type=INFO
#application logger config
log4j.logger.ar.edu.unt.sigea=DEBUG, console
正如我所说,当我运行 @Test
方法时,我的所有 logger.debug()
消息都正确显示,但现在我在具有相同配置的容器上运行,没有显示调试消息。
我找到了this post 并按照答案的建议添加了log4j.appender.console..threshold=DEBUG
行,但没有用。
我正在 Wildfly-10.0.0.Final 应用服务器上进行部署,并且正在使用此日志记录依赖项:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
我错过了什么?我应该去哪里寻找?提前感谢您的回答
【问题讨论】:
您是否尝试过更改 Wildfly 的日志记录级别?standalone/configuration/standalone.xml
并找到标签 <subsystem xmlns="urn:jboss:domain:logging:3.0">
。更改您想要的记录器。
感谢@Apostolos,我正在阅读文档,如果您现在知道如何配置standalone-full.xml
(这是我正在使用的文件),请将其发布为答案。
我认为这是一回事。如果这对您有用,请让我将其发布为接受它的答案。谢谢
【参考方案1】:
除非您想使用自己的 log4j 配置,否则您不需要使用 log4j 绑定。从配置文件来看,您似乎只是在使用 WildFly 日志记录子系统已经提供的控制台附加程序。
要查看当前配置的调试消息,您只需从部署中删除 log4j.properties
并从 pom.xml 中删除 org.slf4j:slf4j-log4j12
依赖项。然后,您可以使用日志记录子系统来配置日志记录并打开/关闭调试日志记录。如果您使用 CLI 或 Web 控制台,则无需重新启动服务器即可更改日志记录级别。
添加调试级别并将默认的console-handler
级别更改为DEBUG
。以下两个 CLI 命令是配置调试日志记录所需的全部内容。
/subsystem=logging/logger=ar.edu.unt.sigea:add(level=DEBUG)
/subsystem=logging/console-handler=CONSOLE:write-attribute(name=level, value=DEBUG)
【讨论】:
这可以解决问题,谢谢!并删除使用:/subsystem=logging/logger=ar.edu.unt.sigea:remove【参考方案2】:查看this Wildfly Documentation 我意识到我的log4j.properties
文件位于错误的位置:它在我的项目的子模块中,并且必须在EAR 模块的META-INF
文件夹中。
默认情况下,Wildfly 采用部署的日志记录配置,因此在 standalone.xml
(或 standalone-full.xml
,具体取决于您使用的配置文件,这是我的情况)中不需要额外配置。
【讨论】:
【参考方案3】:在控制台将日志级别切换为 DEBUG
wildfly/bin/jboss-cli.sh --connect
[standalone@localhost:9990 /] /subsystem=logging/console-handler=CONSOLE:write-attribute(name=level,value=DEBUG)
[standalone@localhost:9990 /] /subsystem=logging/root-logger=ROOT:write-attribute(name=level,value=DEBUG)
将其切换回初始配置(此处为 INFO)
[standalone@localhost:9990 /] /subsystem=logging/console-handler=CONSOLE:write-attribute(name=level,value=INFO)
[standalone@localhost:9990 /] /subsystem=logging/root-logger=ROOT:write-attribute(name=level,value=INFO)
发件人:https://gist.github.com/lfryc/aae879ceb5534292e150
【讨论】:
以上是关于Wildfly 10 不显示调试消息的主要内容,如果未能解决你的问题,请参考以下文章
Wildfly 上的 JMS 2.0 QueueBrowser 不返回消息