2013-03-27 199 views
0

我们使用JBoss 5.1来部署所有的服务。但是我们遇到了这个问题。JBoss日志记录 - 日志依赖项目

比方说,我们有2个项目 'A' 和 'B'。 'A'和'B'都有自己独立的日志文件,记录到'A.log'和'B.log'中。这两个项目都使用共同的依赖关系'C'。现在,如果项目'A'调用'C'并且'C'中有一个记录器语句,那么需要将'A.log'记录为'A',因为'C'是从'A'调用的。 同样,如果项目'B'调用'C','C'中的记录器语句应记录为'B.log'。

我们如何配置JBoss和log4j的实现这个记录?

高级谢谢。

回答

1

你应该利用TCLFilter/TCLMCFilter在你的log4j附加目的地为“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”因此,如果您使用的是战争,那么你将需要相应地更改“DeployURL”。要添加

+0

感谢CoolBeans..Does新的appender需求为单个项目的log4j的配置文件,还是我们需要补充的是在JBoss的log4j的配置文件。 – user1717230 2013-03-28 20:01:39

+0

不客气。它可以在jboss-log4j.xml或您自己的应用程序log4j.xml下进行。有关进一步讨论,请参阅本[Wiki](https://community.jboss.org/wiki/SeparatingApplicationLogs)上的“分离应用程序日志 - 不带单片jboss-log4j.xml文件”一节。 – CoolBeans 2013-03-28 20:57:31