来自mule 3.6.2中mule应用程序文件的log4j2.xml配置

时间:2015-10-29 19:45:24

标签: mule log4j2

如何从mule 3.6.2中的mule应用程序获取特定文件(如'/opt/applications/app1/log/config/log4j2.xml')中的配置。常见的方法是从配置文件log4j2.xml获取配置,该配置文件存储在资源文件夹中,我们需要从其他外部路径读取此配置文件。

1 个答案:

答案 0 :(得分:3)

默认情况下,Mule使用自己的log4j2文件进行日志记录。要从外部路径读取log4j2.xml配置文件,请在文件Application Context中添加下一个bean,为此指定要在Mule的General上下文中使用的外部文件。

应用程序上下文:

     <bean id="loggerContext" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="targetClass">
          <value> org.apache.logging.log4j.LogManager</value>
        </property>
        <property name="targetMethod">
          <value>getContext</value>
        </property>
        <property name="arguments">
          <value>false</value>
        </property>
      </bean>

      <bean id="loggerContext1" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="targetObject" ref="loggerContext" />
        <property name="targetMethod">
          <value>setConfigLocation</value>
        </property>
        <property name="arguments">
          <value>${log4j.external.path}</value>
        </property>
      </bean>

      <bean id="loggerContext2" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="targetObject" ref="loggerContext" />
        <property name="targetMethod">
          <value>reconfigure</value>
        </property>
      </bean>

然后,您需要从文件Mule流中导入此上下文,其中包含:

Mule Config

 <mule xmlns:https="http://www.mulesoft.org/schema/mule/https"
            xmlns="http://www.mulesoft.org/schema/mule/core"
    {..}
   <!-- Add this: -->
    <spring:beans>
        <spring:import resource="classpath*:application-context.xml" />
    </spring:beans>
    {..}
    <flow name="http-name" >
        {..}
    </flow> 
</mule>