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
我有 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