【发布时间】:2013-04-13 03:40:59
【问题描述】:
我在独立模式下使用 jboss as 7。我在我的应用程序中使用 spring,当我运行我的应用程序时,我在服务器日志中收到以下错误:
17:40:19,669 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
17:40:19,671 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN Please initialize the log4j system properly.
所以我通过添加记录器来配置 jboss,如下所示:
<logger category="org.springframework.core.env.StandardEnvironment">
<level name="DEBUG"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
<handler name="TESTFILE"/>
</handlers>
</logger>
处理程序CONSOLE定义如下:
<console-handler name="CONSOLE" autoflush="true">
<level name="DEBUG"/>
<formatter>
<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
</console-handler>
但即使这样做了,我仍然收到同样的错误,为什么?
解决方案:
缺少的部分是指出应用程序应该使用 jboss 的子系统 logging 作为 (log4j),它位于其目录 modules 中,更准确地说是在 org/apache/log4j 中。这是通过将文件 jboss-deployment-structure.xml 添加到包含以下内容的 WEB-INF 来完成的:
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="org.apache.log4j"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
【问题讨论】:
-
消息似乎被记录了吗?
-
不,我得到了同样的错误。
-
所以您看到了错误,但没有记录正确的消息?
-
是的,我看到了错误,但没有记录消息。
-
Spring 必须尝试配置 log4j。您可能最好排除 log4j 的服务器版本,打包您自己的并使用 log4j 配置。我对 Spring 的工作原理知之甚少,但这是我的最佳猜测。