我关注了一些文章并尝试通过遵循一些类似的SO问题来解决问题,但仍然无法使其工作 - 我的日志文件没有在我搜索它的任何地方创建。
我的目标是在应用程序中捆绑工作日志,而不是使用特定于供应商的日志记录。我目前的情况如下:
我在jboss-deployment-structure.xml
目录中创建了MyEAR/META-INF
,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<!-- it only affects single deployment -->
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>
然后我在logback.xml
目录中创建了MyEAR/META-INF
并使用以下配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="TMP_FILE" class="ch.qos.logback.core.FileAppender">
<file>app.log</file>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<root level="TRACE">
<appender-ref ref="TMP_FILE" />
</root>
我的依赖项在父POM文件中指定,如下所示:
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.3</version>
</dependency>
</dependencies>
这导致文件夹MyEAR / lib然后保存这三个JAR文件。
我想将此日志记录配置保留在EAR级别,因此所有EJB和WAR模块都可以使用它。
我有什么遗漏才能让它发挥作用吗?
答案 0 :(得分:0)
您还需要为每个子部署排除日志记录子系统。类似的东西:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<!-- it only affects single deployment -->
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</deployment>
<sub-deployment name="mywar.war">
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</sub-deployment>
<sub-deployment name="myejb.jar">
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</sub-deployment>
</jboss-deployment-structure>