我在容器上测试我的耳朵应用程序,我需要看到我在应用程序上传播的一些调试消息。我正在使用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=%d{ABSOLUTE} [%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 Application Server,我正在使用此日志记录依赖项:
<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>
我错过了什么?我应该在哪里寻找?提前感谢您的回答
答案 0 :(得分:4)
除非您想使用自己的log4j配置,否则不需要使用log4j绑定。从配置文件看起来您只是使用WildFly日志子系统已经提供的控制台appender。
使用当前配置查看调试消息所需要做的就是从部署中删除log4j.properties
并从pom中删除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)
答案 1 :(得分:1)
查看this Wildfly Documentation我意识到我的log4j.properties
文件位于错误的位置:它位于我项目的子模块中,必须位于EAR模块的META-INF
文件夹中
默认情况下,Wildfly采用部署的日志记录配置,因此standalone.xml
(或standalone-full.xml
不需要额外配置,具体取决于您使用的配置文件,这是我的情况)。
答案 2 :(得分:1)
{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)
[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)