JBoss EAP 6.4.4 中的空日志文件(日志记录配置文件)

Empty Log-Files in JBoss EAP 6.4.4 (Logging-Profiles)

我有 3 个 applications/wars 将部署在一个 JBoss EAP 6.4.4 上。我需要为每个应用程序单独的日志文件。所以我尝试了以下步骤 (as seen in this doku)

我。我将日志记录配置文件添加到 MANIFEST.MF:

\a.war\META-INF\MANIFEST.MF contains "Logging-Profile: aProfile"
\s.war\META-INF\MANIFEST.MF contains "Logging-Profile: sProfile"
\t.war\META-INF\MANIFEST.MF contains "Logging-Profile: tProfile"

二.我将以下日志记录子系统添加到 standalone.xml

<subsystem xmlns="urn:jboss:domain:logging:1.5">
  <console-handler name="CONSOLE">
    <level name="INFO"/>
    <formatter>
      <named-formatter name="COLOR-PATTERN"/>
    </formatter>
  </console-handler>
  <!-- ... -->
  <root-logger>
    <level name="INFO"/>
    <handlers>
      <handler name="CONSOLE"/>
    </handlers>
  </root-logger>
  <logging-profiles>
    <logging-profile name="aProfile">
      <periodic-rotating-file-handler name="FILE" autoflush="true">
        <level name="DEBUG"/>
        <formatter>
          <pattern-formatter pattern="%d %-5p [%c] %m  (%X{LogContext})%n"/>
        </formatter>
        <file relative-to="jboss.server.log.dir" path="a.log"/>
        <suffix value=".yyyy-MM-dd"/>
        <append value="true"/>
      </periodic-rotating-file-handler>
      <root-logger>
        <level name="DEBUG"/>
        <handlers>
          <handler name="FILE"/>
        </handlers>
      </root-logger>
    </logging-profile>
    <logging-profile name="sProfile">
      <periodic-rotating-file-handler name="FILE" autoflush="true">
        <level name="DEBUG"/>
        <formatter>
          <pattern-formatter pattern="%d %-5p [%c] %m  (%X{LogContext})%n"/>
        </formatter>
        <file relative-to="jboss.server.log.dir" path="s.log"/>
        <suffix value=".yyyy-MM-dd"/>
        <append value="true"/>
      </periodic-rotating-file-handler>
      <root-logger>
        <level name="DEBUG"/>
        <handlers>
          <handler name="FILE"/>
        </handlers>
      </root-logger>
    </logging-profile>
    <logging-profile name="tProfile">
      <periodic-rotating-file-handler name="FILE" autoflush="true">
        <level name="DEBUG"/>
        <formatter>
          <pattern-formatter pattern="%d %-5p [%c] %m  (%X{LogContext})%n"/>
        </formatter>
        <file relative-to="jboss.server.log.dir" path="t.log"/>
        <suffix value=".yyyy-MM-dd"/>
        <append value="true"/>
      </periodic-rotating-file-handler>
      <root-logger>
        <level name="DEBUG"/>
        <handlers>
          <handler name="FILE"/>
        </handlers>
      </root-logger>
    </logging-profile>
  </logging-profiles>
</subsystem>

=> 所有 3 个日志文件都在启动时创建,但只有 't.log' 和控制台显示日志条目 - 'a.log' 和 's.log' 保持为空。我尝试了几次修改(例如,将 s.war 的 Logging-Profile 更改为 tProfile 等),最后只有 't.log' 按预期工作。

=> 我做错了什么?

(注意:a.war、s.war 和 t.war 使用其他一些具有相似包名称的内部 projects/jars,因此这里可能没有记录器类别)

通过从 WEB-INF/lib

中删除 log4j.jar(和其他不必要的 jar)来修复它

修复步骤:

  • 删除所有(手动添加)Java 从项目 > 属性 > 部署程序集构建路径条目
  • 项目菜单 > 清理
  • 项目 > Maven > 禁用 Maven Nature
  • 项目 > 配置 > 转换为 Maven 项目
  • 检查项目 > Java 构建路径 > 库是否包含 Maven 依赖项
  • 项目菜单 > 清理
  • 检查WEB-INF\lib中没有log4j.jar