2012-08-07 138 views
0

我在Apache Tomcat中运行Mule并使用Log4j进行日志记录。但是我无法让每个应用程序登录到不同的文件。 我知道这可以在Mule以独立模式运行时完成。 在这种情况下是否有可能为每个应用程序提供日志文件?在Apache Tomcat中使用Log4j进行Mule日志记录

这是的log4j.xml配置我使用:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> 
     <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> 
       <layout class="org.apache.log4j.PatternLayout"> 
        <param name="ConversionPattern" 
         value="[%d{dd-MM-yyyy hh:mm:ss:sss}] %5p %c{2}: %m%n" /> 
       </layout> 
     </appender> 

     <appender name="ASYNC" class="org.apache.log4j.AsyncAppender"> 
       <appender-ref ref="FILE"/> 
     </appender> 

     <appender name="FILE" class="org.apache.log4j.RollingFileAppender"> 
       <param name="File" value="${catalina.base}/logs/MYAPP.log"/> 
       <param name="MaxFileSize" value="100MB"/> 
       <param name="MaxBackupIndex" value="100"/> 
       <layout class="org.apache.log4j.PatternLayout"> 
        <param name="ConversionPattern" 
         value="[%d{dd-MM-yyyy hh:mm:ss:sss}] %5p %c{2}: %m%n"/> 
       </layout> 
     </appender> 

     <root> 
       <priority value="INFO"/> 
       <appender-ref ref="CONSOLE"/> 
       <appender-ref ref="ASYNC"/>     
     </root> 
</log4j:configuration> 

回答

0

的OOTB每个应用日志记录功能是那些功能中的一个只能由骡standaone(如exlained here

设置有也就是说你可以利用log4j配置来获得类似的结果。要做到这一点,你必须添加一个自定义的log4.properties(或log4.xml)文件到您的web应用程序,并使用FileAppender并根据您的需要进行配置

+0

对于部署在Tomcat上的每个应用程序,我都有一个log4j.xml配置文件,但它们都记录到同一个文件。该文件不总是相同的,是用'FileAppender'配置的文件之一。我不确定它是一个骡子还是Tomcat问题。 – Daniel 2012-08-08 12:34:56

+0

你能分享appender配置吗?你也只有一个appender(FileAppender)或多个ose(例如你也有一个控制台)? – genjosanzo 2012-08-09 19:13:35

+0

刚刚更新了我的问题。我只使用FileAppender尝试过,但它不起作用 – Daniel 2012-08-10 12:43:19

0

在您的示例中,您只声明了一个appender“FILE” 。

当您运行多个应用程序时,您可以声明额外appender,以显示基于包名称的信息。您仍然会在主日志文件中找到一些信息,这些信息与org.mule ...包中的错误有关。我猜这就是你所做的。