在jboss中使用log4j时,因为jboss本身也使用log4j记录日志,常常会出现应用自己的日志会被记录到jboss的日志文件里或报appender closed。这是由于jboss首先加载自己身的log4j文件,后续又加载了应用身的log4j配置文件导致。最终解决方法如下:
配置jboss_server_home/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml文件里的Java2ClassLoadingCompliance及UseJBossWebLoader为false,如果自己的应用里存在WEB-INF/jboss-web.xml,则里面的java2ClassLoadingCompliance及java2ParentDelegaton属性也都设置成false。这样jboss加载webapp将使用JBoss 隔离的UCL作为Classloader。
在开发时,偶碰到一个奇怪的问题,简单的webapp加载log4j配置文件测试没有问题,能正常输出日志。但在使用spring的webapp中不会加载log4j.xml或log4j.properties,在web.xml中强行加载log4j配置得以解决,即在web.xml增加以下配置:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
当设置Java2ClassLoadingCompliance及UseJBossWebLoader为false时,会导致webapp有可能找到不在jboss配置的数据库连接池,偶在连接池配置文件中增加了<use-java-context>false</use-java-context>,引用jndi时就不需要加java:。
官方对log4j的配置说明请参考:
jboss官方log4j配置用户手册
分享到:
相关推荐
为了解决 JBOSS 和 Log4j 的冲突,需要在 JBOSS 服务器中进行以下配置: 1. 配置 $JBOSS-HOME/server/default/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml 文件里的 Java2ClassLoadingCompliance 及 ...
- JBoss自带默认的log4j配置,因此在JBoss上使用log4j需要特别注意与默认配置之间的冲突。 - 当项目中包含log4j配置文件时,可能会影响JBoss原有的日志输出行为。例如,如果项目中的配置文件包含了Console ...
- 要修改日志设置,编辑`server/default/conf/jboss-log4j.xml`。默认日志输出在`server/default/log/server.log`。你可以查阅log4j文档以了解更多定制选项。 2. **Web服务端口调整**: - 修改`server/default/...
例如,在SpringBoot+Dubbo项目中,可能会出现log4j和logback的冲突,因为Dubbo依赖了zkclient,而zkclient又依赖了log4j,这样如果项目中还有其他日志框架存在并有使用,就会导致多套共存。解决方案是使用slf4j+...
JBoss使用Log4j或JBoss Logging进行日志管理。在`standalone/configuration/logging.properties`或`domain/configuration/logging.properties`中,可以调整日志级别、格式和输出位置。 十、性能调优 1. 类加载器...
1. **日志文件设置**:通过修改server\default\conf下的jboss-log4j.xml文件,可以定制日志输出的位置和级别。 2. **web服务端口**:若需更改web服务的默认端口号8080,需编辑server\default\deploy\jboss-web....
1. **日志文件设置**:通过修改`server/default/conf/jboss-log4j.xml`来调整日志配置。默认日志输出在`server/default/log/server.log`。 2. **修改web服务端口**:要更改web服务(如HTTP)的端口号,需编辑`...
日志设置主要在`server/default/conf/jboss-log4j.xml`文件中,你可以根据需要定制log4j的日志级别和输出位置。而要改变Web服务的端口号,需修改`server/default/deploy/jboss-web.deployer/server.xml`文件中的相应...
要更改默认的日志配置,修改`server/default/conf/jboss-log4j.xml`。默认情况下,log4j的日志输出在`server/default/log/server.log`中。关于log4j的详细配置,可参考相关文档。 2. **web服务端口设置** 修改web...
了解如何配置和使用JBoss的日志框架,如JBoss Logging或Log4j,将有助于快速诊断和修复故障。 总的来说,“JBoss相关教材.rar”这个压缩包很可能包含了关于JBoss的安装指南、配置手册、实战案例、教程文档等内容,...
12. **日志管理**:JBoss7使用Log4j2作为默认的日志管理系统,提供灵活的日志配置和输出。 13. **集成开发环境**:Eclipse、IntelliJ IDEA等主流IDE都提供了对JBoss7的集成,方便开发者进行项目配置和调试。 14. *...
1. 日志配置:默认的日志设置可以通过修改`server\default\conf\jboss-log4j.xml`来调整。日志输出位置在`server\default\log\server.log`。关于log4j的详细设置,可以查阅更多相关资料。 2. Web服务端口:如需更改...
**8.3 Log4j 配置** - **8.3.1 分离应用程序日志** - 讲解了如何将应用程序日志与其他日志分离。 - **8.3.2 指定 appender 和过滤器** - 解释了如何配置 appender 和过滤器。 - **8.3.3 记录到单独服务器** - ...
描述中提到的问题是一个经典的多线程并发问题,即log4j的`consoleAppender`和`System.out`在竞争资源时发生了锁冲突,导致了死锁。在Java中,`consoleAppender`通常是Log4j用来将日志输出到控制台的方式,而`System....
3. jboss-logging-spi.jar:这是一个日志服务提供者接口(SPI)的实现,使得应用程序可以使用不同的日志框架(如Log4j或Java Util Logging),而无需直接依赖特定的日志实现。在JBoss Cache中,它用于记录系统事件和...