我花了几天的时间尝试使用我的wildfly 10项目设置logback。
我的目标是:
我的项目骨架由maven生成,如下所示:
我尝试将logback.xml添加到web和ejb项目中的资源 - 它无法正常工作。我是野生动物的新人,不确定我是否做得对。
我尝试根据this page在所有项目中将以下代码添加到jboss-deployment-structure.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.apache.commons.logging" />
<module name="org.apache.log4j" />
<module name="org.jboss.logging" />
<module name="org.jboss.logging.jul-to-slf4j-stub" />
<module name="org.jboss.logmanager" />
<module name="org.jboss.logmanager.log4j" />
<module name="org.slf4j" />
<module name="org.slf4j.impl" />
</exclusions>
</deployment>
</jboss-deployment-structure>
什么都没发生。然后我喜欢另一个:
<jboss-deployment-structure>
<deployment>
<!-- exclude-subsystem prevents a subsystems deployment unit processors running on a deployment -->
<!-- which gives basically the same effect as removing the subsystem, but it only affects single deployment -->
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>
一切都没发生。我现在做错了吗?
然后我在this tutorial中找到了替换wildfly记录器的解决方案。
它有效,但有一个巨大的劣势。日志加倍 - 它看起来logback和wildfly logger一次登录到控制台。在logger.properties中禁用wildfly logger并不起作用。
我不知道我花了这么多时间来实现记录器。 Logback + android是一个平和的蛋糕。 我很欣赏这个问题的所有好建议和经验。
答案 0 :(得分:2)
int?
的内容有效,但由于您使用的是EAR,因此您需要为每个sub-deployment执行相同的排除。我会排除日志记录子系统,因为您不需要子系统的任何部分来处理您的部署。
将jboss-deployment-structure.xml添加到您的EAR项目到目录UserWarning: DataFrame columns are not unique, some columns will be omitted.
。
另一种选择是将jboss-deployment-structure.xml
和projectname-ear/src/main/application/META-INF
更改为add-logging-api-dependencies
。此选项需要注意的是,它将阻止日志记录依赖项添加到所有部署中。如果您只有一个部署或所有部署我们为日志管理器进行了注销,那么这将是最简单的选择。
更新:示例use-deployment-logging-config
false
要删除重复的日志,请检查this发布。