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

Posted

技术标签:

【中文标题】JBoss EAP 6.4.4 中的空日志文件(日志配置文件)【英文标题】:Empty Log-Files in JBoss EAP 6.4.4 (Logging-Profiles) 【发布时间】:2016-06-30 21:43:12 【问题描述】:

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

我。我在 MANIFEST.MF 中添加了日志记录配置文件:

\a.war\META-INF\MANIFEST.MF 包含“日志记录配置文件:aProfile” \s.war\META-INF\MANIFEST.MF 包含“日志记录配置文件:sProfile” \t.war\META-INF\MANIFEST.MF 包含 "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  (%XLogContext)%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  (%XLogContext)%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  (%XLogContext)%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 使用其他一些具有相似包名的内部项目/jar,因此这里可能没有记录器类别)

【问题讨论】:

【参考方案1】:

通过从 WEB-INF/lib 中删除 log4j.jar(和其他不必要的 jar)来修复它

修复步骤:

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

【讨论】:

以上是关于JBoss EAP 6.4.4 中的空日志文件(日志配置文件)的主要内容,如果未能解决你的问题,请参考以下文章

Jboss EAP 6.2 log4j.properties 不记录输出但创建日志文件

在 JBoss EAP 7 访问日志上执行每小时 logrotate

在 DHCP 服务器 Linux 上启动 Jboss EAP 和 UnknownHostException

JBoss EAP 7 中的强化和性能调优

JBoss EAP 6.4 Infinispan 集群缓存网络问题

SpringBoot jars 作为 JBoss EAP 7.0 中的自定义模块