首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Log4j对应用程序日志进行分组

Log4j对应用程序日志进行分组
EN

Stack Overflow用户
提问于 2010-03-09 08:18:35
回答 2查看 2K关注 0票数 1

我正在尝试将多个相关应用程序的日志分组到单个日志文件中。

例如,我有3个应用程序A1.esb,A2.esb,A3.esb。

我希望这3个应用程序的所有日志都记录到一个名为A.log的日志文件中。

同样,我希望B.log用于B1.esb、B2.esb和B3.esb。

我在JBoss应用服务器中使用log4j。

我曾尝试使用TCLFilter,但我仅成功地将单个应用程序记录到单个日志文件中。在中,A1.esb日志记录到A1.log,A2.esb日志记录到A2.log,依此类推。但我想不出一种对这些日志进行分组的方法。

EN

回答 2

Stack Overflow用户

发布于 2010-03-11 06:07:49

非常感谢大家的回复。

我已经设法通过阅读jboss的一些log4j文档来修复它。

我所要做的就是为每个应用程序组指定一个附加器,并且在每个附加器中,我将有一个筛选器链。

因此,我的日志附加器应该如下所示。

代码语言:javascript
复制
<appender name="A" class="org.apache.log4j.FileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"></errorHandler>
<param name="Append" value="false"/>
<param name="File" value="${jboss.server.home.dir}/log/A.log"/>
<param name="Threshold" value="INFO"/>

<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
</layout>

<filter class="org.jboss.logging.filter.TCLFilter">
<param name="AcceptOnMatch" value="true"/>
<param name="DeployURL" value="A1.esb"/>
</filter>

<filter class="org.jboss.logging.filter.TCLFilter">
<param name="AcceptOnMatch" value="true"/>
<param name="DeployURL" value="A2.esb"/>
</filter>

<filter class="org.jboss.logging.filter.TCLFilter">
<param name="AcceptOnMatch" value="true"/>
<param name="DeployURL" value="A3.esb"/>
</filter>

<filter class="org.apache.log4j.varia.DenyAllFilter"/>

</appender>

对于B组依此类推,B组将具有B1.esb、B2.esb和B3.esb。

票数 2
EN

Stack Overflow用户

发布于 2010-03-09 23:56:55

定义将用于以下三个日志的附加器:

代码语言:javascript
复制
<appender name="A" class="org.jboss.logging.appender.DailyRollingFileAppender">
      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
      <param name="File" value="${jboss.server.log.dir}/A.log"/>
      <param name="Append" value="true"/>
    <param name="Threshold" value="INFO"/>

      <param name="DatePattern" value="'.'yyyy-MM-dd"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
      </layout>
   </appender>

然后使用additivity=false将您的包路由到此记录器

代码语言:javascript
复制
   <category name="A1.esb" additivity="false">
   <priority value="INFO"/>
      <appender-ref ref="A"/>
   </category>

   <category name="A2.esb" additivity="false">
   <priority value="INFO"/>
      <appender-ref ref="A"/>
   </category>   

   <category name="A3.esb" additivity="false">
   <priority value="INFO"/>
      <appender-ref ref="A"/>
   </category>

我希望您为每个应用程序使用不同的包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2405770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档