【问题标题】:JBoss logging - logging dependency projectsJBoss logging - 记录依赖项目
【发布时间】:2013-03-27 17:10:58
【问题描述】:

我们使用 JBoss 5.1 来部署我们所有的服务。但是我们遇到了这个问题。

假设我们有 2 个项目“A”和“B”。 “A”和“B”都有自己独立的日志文件,可以将内容记录到“A.log”和“B.log”中。这两个项目都使用公共依赖项“C”。现在,如果项目'A'调用'C'并且'C'中有一个记录器语句,它需要记录到'A.log',因为'C'是从'A'调用的。 同样,如果项目“B”调用“C”,则“C”中的记录器语句应记录到“B.log”。

我们如何配置 JBoss 和 log4j 来实现这种日志记录?

提前谢谢。

【问题讨论】:

    标签: java logging jboss log4j jboss5.x


    【解决方案1】:

    您应该在 log4j 附加程序中为“A”和“B”使用 TCLFilter/TCLMCFilter 来分离共享类的应用程序日志。在wiki - SeparatingApplicationLogs 上阅读更多相关信息

    例如:

    <appender name="LogA" class="org.apache.log4j.FileAppender">
          <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"></errorHandler>
          <param name="Append" value="false"/>
          <param name="File" value="some_directory/log/a.log"/>
          <layout class="org.apache.log4j.PatternLayout">
             <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
          </layout>
          <filter class="org.jboss.logging.filter.TCLMCFilter">
             <param name="AcceptOnMatch" value="true"/>
             <param name="DeployURL" value="a.ear"/>
          </filter>    
    </appender>
    

    请注意,对于 .war 文件,文件名更改为“a-exp.war”,因此如果您使用的是战争,则需要相应地更改“DeployURL”。

    【讨论】:

    • 感谢 CoolBeans。是否需要为单个项目的 log4j 配置文件添加新的 appender,或者我们是否需要将其添加到 JBoss 的 log4j 配置文件中。
    • 不客气。它可以放在 jboss-log4j.xml 或您自己的应用程序 log4j.xml 下。请参阅此wiki 上的Separating Application Logs - without the monolithic jboss-log4j.xml file 部分以进行进一步讨论。
    猜你喜欢
    • 2013-12-15
    • 2012-09-06
    • 2012-04-21
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 2023-02-16
    • 1970-01-01
    • 2010-10-30
    相关资源
    最近更新 更多