[英]Logback not working with JBoss EAP 6.1
我有一个maven web应用程序,我在其中使用logback和JBoss EAP 6.1作为服务器。 问题是当我在服务器上部署它时,我的logback.xml被忽略,并且使用了logback的默认配置,它在控制台而不是我的日志文件上打印。 如果我在tomcat上部署我的应用程序,日志工作正常。
我把logback.xml放在src / main / resources中。
发现类似的问题 - Logback + SL4J + JBoss EAP 6.0和Logback和Jboss 7中的 日志配置 - 不能一起工作? 但是没有用......
忘了早点分享解决方案......它是 -
我们需要在jboss-deployment-structure.xml中添加以下行
<exclusions>
<module name="org.apache.commons.logging" />
<module name="org.slf4j" />
<module name="org.slf4j.ext" />
<module name="org.slf4j.impl" />
<module name="org.apache.log4j" />
</exclusions>
所以整个文件看起来像 -
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<!-- Exclusions allow you to prevent the server from automatically adding
some dependencies -->
<exclusions>
<module name="org.apache.commons.logging" />
<module name="org.slf4j" />
<module name="org.slf4j.ext" />
<module name="org.slf4j.impl" />
<module name="org.apache.log4j" />
</exclusions>
</deployment>
</jboss-deployment-structure>
如果您有maven项目,可以将此文件放在 -
<project>/webapp/META-INF/jboss-deployment-structure.xml
现在日志记录工作正常。
首先,感谢@popeye
攀登@popeye已经明确定义的内容,这是我的2美分
' jboss-deployment-structure.xml
'的位置: src/main/webapp/WEB-INF/jboss-deployment-structure.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<!-- Hey Server please don't add these dependencies. I don't need them.
I have mine in my application dependencies -->
<exclusions>
<module name="org.apache.commons.logging" />
<module name="org.slf4j" />
<module name="org.slf4j.ext" />
<module name="org.slf4j.impl" />
<module name="org.apache.log4j" />
</exclusions>
<dependencies>
<module name="com.oracle" />
<module name="org.jboss.ironjacamar.jdbcadapters" slot="main" />
</dependencies>
</deployment>
</jboss-deployment-structure>
现在, logback.xml
正在运行。 哟!
<module name="com.oracle" />
? 这是您在JBOSS standalone.xml
提到的驱动程序模块的名称
<subsystem xmlns="urn:jboss:domain:datasources:1.1">
<datasources>
<datasource><!-- your configurations --></datasource>
<drivers>
<driver name="ojdbc6-11.2.0.4" module="com.oracle">
<xa-datasource-class>oracle.jdbc.OracleDriver</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
请注意,这是用于JBOSS服务器到数据库的通信。 [即使你的项目/ lib中有ojdbc6-11.2.0.4.jar
,你也需要这个配置]
你是怎么想出这个名字'com.oracle'的? 这是标准吗? 不 。 这是我在服务器上创建的文件夹的结构看这个SO帖子 - 在jboss中部署应用程序时出现Xmlparserv2错误,在JBoss for Java Web应用程序中安装Oracle ojdbc模块 '如何在JBOSS中创建Oracle模块'
另请注意,不要将此项与您可能在项目pom.xml
添加的依赖项混淆。 即:这一个
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
<scope>provided</scope> <!-- to exclude from WEB-INF/lib -->
</dependency>
您需要上面的项目依赖项来编写Java代码,编译它,以及在运行时,以便您的代码与驱动程序进行通信。
<module name="org.jboss.ironjacamar.jdbcadapters" slot="main" />
? 否则,您可能会遇到错误 ,无法在Spring应用程序中的JBoss上设置jndi数据源。 所以这是一种依赖。 不要忘记在你的pom.xml
添加jar
<dependency>
<groupId>org.jboss.ironjacamar</groupId>
<artifactId>ironjacamar-jdbc</artifactId>
</dependency>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.