2014-01-23 159 views
0

Mule ESB是否支持log4j2?我正在尝试在我的esb应用程序中添加log4j2.xml,但即使在添加log4j2.xml之后,我的mule esb应用程序也会默认使用它自己的log4j 1.2实现。我希望我的esb应用程序读取我的log4j2.xml文件,并在参数中使用/使用我在log4j2.xml中指定的内容,并且如果存在log4j2.xml文件,则它不应该读取其自己的log4j 1.2实现日志属性文件。Mule ESB Log4j2支持

我在用mule esb应用程序实现log4j2(.xml)时遇到问题。任何帮助将非常感激。

+0

这与骡子ESB的工作将是巨大的,我与启动任何样品log4j2.xml。谢谢。 – Jai

+0

请通过MuleSoft员工的优秀博客:http://blogs.mulesoft.org/mule-3-6-asynchronous-logging/ –

回答

0

最新版本的mule esb支持log4j2。希望版本可能紧密耦合,这可能是它可能无法正常工作的原因。

0

Log4j2有一个适配器允许针对log4j-1.2 API编码的应用程序使用log4j2实现。 (又见FAQ

步骤来实现这一点:

  • 从类路径删除的log4j-1.2.x.jar
  • log4j的-1.2-API-2.0.jar jar添加到类路径。
  • 确保log4j的-API-2.0.jar和log4j的核心-2.0.jar在类路径中

现在的log4j-1.2 API和log4j2 API都将委托给log4j2实施。示例配置是here

+0

谢谢。会试试这个。 :) – Jai

+0

它解决了这个问题吗? –

+0

不是。即使从类路径中移除log4j-1.2.x.jar,Mule也会自行加载log4j-1.2,并且不会读取log4j2.xml。骡仍然只读取log4j.properties。 slf4j日志语句未按照log4j2.xml中的定义重定向,而mule中的slf4j日志语句仅遵循log4j.properties文件中定义的内容。 – Jai

0

Mule esb支持log4j。 检查您是否导入了slf4j库。

您需要创建/重命名log4j2-的test.xml

0

这是我log4j2.xml和我的pom.xml文件,I'm用骡子V7.1。 我希望它有帮助。

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="debug"> 
    <Properties> 
     <Property name="log-path">/my_path/my_logs/my_app</Property> 
     <Property name="app-id">my_app</Property> 
    </Properties> 

    <Appenders> 
     <RollingFile name="file-log" fileName="${log-path}/${app-id}.log" 
      filePattern="${log-path}/${app-id}-%d{yyyy-MM-dd}.log"> 
      <PatternLayout> 
       <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n 
       </pattern> 
      </PatternLayout> 
      <Policies> 
       <TimeBasedTriggeringPolicy interval="1" 
        modulate="true" /> 
      </Policies> 
     </RollingFile> 

     <Console name="console" target="SYSTEM_OUT"> 
      <PatternLayout 
       pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n" /> 
     </Console> 
    </Appenders> 
    <Loggers> 

     <Logger name="org.apache.logging.log4j" level="warn" additivity="false"> 
      <appender-ref ref="file-log" /> 
      <appender-ref ref="console" /> 
     </Logger> 

     <Root level="info" additivity="false"> 
      <appender-ref ref="file-log" /> 
      <appender-ref ref="console" /> 
     </Root>`enter code here` 
    </Loggers> 

</Configuration> 

的pom.xml

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-api</artifactId> 
    <version>2.0</version> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-core</artifactId> 
    <version>2.0</version> 
    </dependency>