JBoss日志记录 - 日志依赖项目

时间:2013-03-27 17:10:59

标签: java logging jboss log4j jboss5.x

我们使用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来实现此日志记录?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您应该在log4j appender中使用TCLFilter / TCLMCFilter“A”和“B”来分离共享类的应用程序日志。请在此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”,因此如果您正在使用war,则需要相应地更改“DeployURL”。