当前位置: 代码迷 >> java >> 如何防止应用程序日志在Wildfly 8.2.0 Final AS中的server.log中登录
  详细解决方案

如何防止应用程序日志在Wildfly 8.2.0 Final AS中的server.log中登录

热度:35   发布时间:2023-07-25 20:08:36.0

我正在将EAR应用程序从JBoss 6.1.0 AS迁移到Wildfly 8.2.0 AS EAR包含log4j.xml,并且通过使用以下代码行使用此日志记录配置文件来生成应用程序日志:

org.apache.log4j.xml.DOMConfigurator.configureAndWatch(log4j文件路径)

应用程序日志可以很好地生成,但是在server.log中,应用程序日志也会被附加。 我正在使用standalone-full-ha.xml配置文件,并尝试了以下步骤:

  1. 添加了jboss-deployment-structure.xml,其中包含以下内容:

<deployment>

     <exclude-subsystems>

    <subsystem name="logging" />

 </exclude-subsystems>

</deployment>   

  1. <subsystem xmlns="urn:jboss:domain:logging:2.0">部分下的以下行中添加了

standalone-full-ha.xml中

<use-deployment-logging-config value="true"/>

<add-logging-api-dependencies value="false"/>

如何防止应用程序日志附加到server.log中? 请帮忙。

尝试解决方法

仅添加我以前的评论,我尝试了链接提供的第一个选项。

  1. 在EAR的META-INF下添加了log4j.xml。

  2. 在MANIFEST.MF中添加了org.apache.log4j模块作为依赖项属性之一。

  3. 提到添加VM参数-Dorg.jboss.as.logging.per-deployment = true,但是我没有添加。

server.log生成正常,应用程序日志生成正常,但是我有以下担忧:

  1. 是log4j.xml中的开始标记,它具有“警告”作为阈值属性的值。 但是,我正在获取所有类型的日志(即,用作ALL或DEBUG阈值)。

  2. 我已将log4j.xml放在EAR的META-INF中。 因此,org.apache.log4j.xml.DOMConfigurator.configureAndWatch(log4j文件路径)是否可以工作,其中路径在META-INF中表示log4j.xml? 默认超时为60秒,如果我更改阈值,是否可以反映出来?

我使用以下jboss-deployment-structure.xml:

<?xml version="1.0" encoding="UTF-8"?>
    <!--https://github.com/wildfly/wildfly-core/blob/master/server/src/main/resources/schema/jboss-deployment-structure-1_2.xsd-->
<jboss-deployment-structure>
   <deployment>
       <exclude-subsystems>
           <subsystem name="logging"/>
       </exclude-subsystems>
      <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>

  相关解决方案