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

标签 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 来实现这种日志记录?

提前致谢。

最佳答案

您应该在 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”,因此如果您使用 war,则需要相应更改“DeployURL”。

关于java - JBoss 日志记录 - 记录依赖项项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15665064/

相关文章:

java - Gremlin:从 EdgeId 获取进出顶点,包括边属性

maven - 如何获取 log4j 消息以登录到 Cassandra?

c++ - 使用redis做日志缓存 : Is it possible to create an eviction policy that evicts to PostgreSQL?

python - 在 Python 中使用日志记录模块进行颜色记录

java - 使用 JSF 的 Seam 与使用 GWT 的 Seam

java - 使用 jpa 和 hibernate 的 Spring Security

java - mongodb-java-driver 3.2 无法使用运行时进行 mongoexport

configuration - jboss as 7 - 在同一个 linux 服务器中运行多个实例 - 独立 vs 域

java - JBoss 中的 ModuleNotFoundException 错误

java - 可靠地获取时差 - Android