登录Mule ESB中的文件

时间:2012-02-02 09:41:23

标签: esb mule

可以在MULE ESB中的文件中进行日志记录吗?。如果是这样,请给我一些示例和代码片段。谢谢提前

纳拉亚南

4 个答案:

答案 0 :(得分:3)

您需要将log4j属性放在main / resources目录中的mule项目中。这是我与mule esb一起使用的示例log4j.xml。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd-MM-yyyy HH:mm:ss} %-5p [%t] [%c] - %m%n" />
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
        <param name="LevelMin" value="ERROR" />
        <param name="LevelMax" value="FATAL" />
        <param name="AcceptOnMatch" value="true" />
    </filter>
</appender>
<appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="file" value="${mule.home}/logs/test.log" />
    <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
    <param name="Append" value="true" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd-MM-yyyy HH:mm:ss} %-5p [%t] [%c] - %m%n" />
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
        <param name="LevelMin" value="INFO" />
        <param name="LevelMax" value="FATAL" />
        <param name="AcceptOnMatch" value="true" />
    </filter>
</appender>
<root>
    <priority value="DEBUG" />
    <appender-ref ref="console" />
    <appender-ref ref="file" />
</root>
</log4j:configuration>

答案 1 :(得分:1)

使用以下log4j.xml文件。将文件命名为log4j.xml,将其放入mule项目claspath sot aht mule将在启动应用程序时选择thsi文件。

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>

<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
    </layout>
</appender>

<appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="c:/logs/gid/gid.log" />
    <param name="DatePattern" value="'.'yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
    </layout>
</appender>

<root>
    <level value="INFO" />
    <appender-ref ref="FILE" />
</root>

</log4j:configuration>

希望这会对你有所帮助。

...谢谢

答案 2 :(得分:0)

是的,我们可以将整个日志保存在任何位置的文件中。对于那个更改目标(给出你想要的路径)在te log4j.xml文件中。

答案 3 :(得分:0)

从Mule 3.6开始,他们将日志系统从Log4j更改为Log4j2。将以下内容用于您的log4j2.xml文件。已通过Mule 3.8进行了测试。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%-5p %d [%t] %c: %m%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <!-- CXF is used heavily by Mule for web services -->
    <AsyncLogger name="org.apache.cxf" level="WARN"/>
    <!-- Apache Commons tend to make a lot of noise which can clutter the log-->
    <AsyncLogger name="org.apache" level="WARN"/>
    <!-- Reduce startup noise -->
    <AsyncLogger name="org.springframework.beans.factory" level="WARN"/>
    <!-- Mule classes -->
    <AsyncLogger name="org.mule" level="INFO"/>
    <AsyncLogger name="com.mulesoft" level="INFO"/>
    <AsyncRoot level="INFO">
      <AppenderRef ref="Console"/>
    </AsyncRoot>
  </Loggers>
</Configuration>