【问题标题】:JBoss 7 EAP Application Specific Logging with Shared Modules使用共享模块的 JBoss 7 EAP 应用程序特定日志记录
【发布时间】:2017-12-18 14:29:18
【问题描述】:

也许我只是完全遗漏了一些东西,但我试图在 JBoss 7 EAP 中配置 log4j,主要目标是将应用程序 (WAR) 日志消息隔离到唯一文件。

我们的环境将 Spring ( 3.X ) 配置为一个模块,每个 WAR(我们称之为 WAR A 和 WAR B )都有自己的 Spring jboss 部署描述符以及 log4j.xml。

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
    <deployment>
        <dependencies>
            <module name="org.springframework.spring" slot="3.2" meta-inf="export" export="true" />
        </dependencies>
    </deployment>
</jboss-deployment-structure>


log4j.rootLogger = INFO, FILE
log4j.category.org.springframework=DEBUG
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.File=${jboss.server.log.dir}/webapp_a.log
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.Threshold=debug
log4j.appender.FILE.Append=true
log4j.appender.FILE.DatePattern='.' yyyy-MM-dd-a
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d %-5p (%-6t) [%X{IP}] [%c] %m%n

每个应用程序都创建自己的日志文件,但是所有 Spring 日志都写入 JBoss server.log,而不是我期望的特定于应用程序的日志。我的想法是我只想在其日志文件中查看与应用程序相关的 spring 日志

我是否遗漏了一些完全明显的东西,或者真的只是不理解类加载在 JBoss 7 中是如何工作的,而这甚至是不可能的。谢谢

【问题讨论】:

    标签: spring jboss7.x


    【解决方案1】:

    这是因为您已将 Spring 作为模块安装。模块通过日志子系统配置的系统日志上下文进行日志记录。

    由于org.springframework.spring 使用它自己的类加载器,您真的不希望org.springframework.spring 模块使用应用程序日志上下文进行日志记录。原因是任何静态记录器都将在首先配置记录器的应用程序上配置。

    【讨论】:

      猜你喜欢
      • 2011-06-24
      • 2014-12-25
      • 2015-04-06
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 2018-03-28
      • 1970-01-01
      相关资源
      最近更新 更多