WIldfly 10 + logback

时间:2017-02-15 08:18:00

标签: logging wildfly logback

我花了几天的时间尝试使用我的wildfly 10项目设置logback。

我的目标是:

  1. 服务器日志应由wildfly logger创建。
  2. 我的EAR日志应该由logback创建。
  3. Logback和wildfly记录器日志到控制台。
  4. 我的项目骨架由maven生成,如下所示:

    • 项目名称
    • 的projectname耳
    • 项目名称的EJB
    • 的projectname-父
    • 项目名称的web

    我尝试将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是一个平和的蛋糕。 我很欣赏这个问题的所有好建议和经验。

1 个答案:

答案 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.xmlprojectname-ear/src/main/application/META-INF更改为add-logging-api-dependencies。此选项需要注意的是,它将阻止日志记录依赖项添加到所有部署中。如果您只有一个部署或所有部署我们为日志管理器进行了注销,那么这将是最简单的选择。

更新:示例use-deployment-logging-config

false

要删除重复的日志,请检查this发布。