我对JBoss AS7和日志记录有些纠结。我在网上找不到任何相关的东西,尽管我的问题很普遍。
默认日志当前如下所示:
11:57:29,950 INFO [stdout] (http--0.0.0.0-8081-78) 248408930 [http--0.0.0.0-8081-78] INFO org.apache.http.impl.client.DefaultHttpClient - I/O exception (java.net.SocketException) caught when processing request: Connection reset
11:57:29,950 INFO [stdout] (http--0.0.0.0-8081-78) 248408930 [http--0.0.0.0-8081-78] INFO org.apache.http.impl.client.DefaultHttpClient - Retrying request请注意stdout,这些行由某个日志库写入stout,该库由某个库使用,并由JBoss拾取并写入日志文件。这就是我想解决的问题。
我猜一定有一种方法可以让适配器告诉log4j (或任何其他日志记录框架)将日志记录到jboss日志记录子系统?
我的第一个想法是从项目的类路径中删除所有log4j配置。我在我使用的一个库中找到了一个,它确实记录到了stdout。但这并不能解决任何问题。
11:21:01,648 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.StandardServletEnvironment).
11:21:01,648 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN Please initialize the log4j system properly.
11:21:01,648 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.未配置附加器时的常见错误消息。至少我可以确定类路径中不再有任何配置。
JBoss AS文档甚至没有提到这种情况,当我不能获得正确的日志记录时,我应该如何使用第三方库?
我真的希望有人能帮助我,任何提示都很感谢!
马拉克斯
发布于 2012-03-20 01:20:05
虽然这不在问题中,但我确实假设您正在尝试将log4j与JBoss AS7一起使用。如果这是真的,并且您确实需要使用附加器,那么您需要排除服务器附带的log4j,并在当前的部署中打包您自己的版本。一旦解决了AS7-514,这种情况应该很快就会改变。一旦添加了该功能,您就不需要做任何事情了。
要暂时解决此问题,您首先需要创建如下所示的jboss-deployment-structure.xml:
<jboss-deployment-structure>
<deployment>
<!-- Exclusions allow you to prevent the server from automatically adding some dependencies -->
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</deployment>
</jboss-deployment-structure>然后,将您自己的log4j版本添加到您的WEB-INF/lib目录或部署能够找到该库的任何其他位置。
在那之后,它应该会像你所期望的那样工作。
https://stackoverflow.com/questions/9769000
复制相似问题