Wildfly 13-使用Ear项目中的登录进行正确的项目设置

时间:2019-01-09 13:57:40

标签: wildfly logback logback-classic wildfly-13

我正在将我的应用程序部署为wildfly 13中的ear存档。ear包含war和ejb。 ejb用于不同的项目。我想将战争和ejb的信息记录到一个文件中,以获取在单个日志文件中所发生情况的完整上下文。

我设法通过回溯从战争中记录日志,但是来自ejb的日志没有通过回溯记录。

我当前的设置:

  • 在我的耳朵模块中,我的耳朵文件中有一个jboss-deployment-structure.xml以排除日志子系统
  • 在我的Web模块中,logback.xml位于WEB-INF / classes
  • 在我的Web模块中,我具有logback-classic和slf4j的依赖项
  • 在我的ejb模块中,我对slf4j有依赖性

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

如果您仅登录到文件,则可以使用logging-profile,它允许您进行运行时更改,并且如果要更改日志记录配置,则不必重新部署应用程序。

使用WildFly日志记录

配置文件配置示例

/subsystem=logging/logging-profile=ear1:add
/subsystem=logging/logging-profile=ear1/pattern-formatter=PATTERN:add(pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n")
/subsystem=logging/logging-profile=ear1/periodic-rotating-file-handler=FILE:add(append=true, suffix=".yyyy-MM-dd", named-formatter=PATTERN, file={relative-to=jboss.server.log.dir, path="ear1.log"})
/subsystem=logging/logging-profile=ear1/root-logger=ROOT:add(level=INFO, handlers=[FILE])

然后,您只需在EAR的清单中添加Logging-Profile: ear1项即可。

使用Logback

如果要继续使用logback,则需要将logback和slf4j依赖项放在EAR/lib目录中。技巧将是弄清楚将logback配置文件放在何处。它可能在EAR/META-INFEAR/lib中都有效,但是我不确定。如果将其保存在WAR/WEB-INF/classes中,它甚至可以工作,但是您需要确保在WAR中访问记录器,然后才能在EJB中对其进行访问。

您还需要确保排除EAR的org.slf4j.api模块或logging子系统以及jboss-deployment-structure.xml中的每个子部署。