骡子中的动态日志文件路径

时间:2016-11-26 03:07:48

标签: logging dynamic mule

我试图动态更改mule中的日志文件路径我已经在表达式组件中设置了系统属性,但由于log4j2.XML在编译时解码了值本身没有反映出我甚至在log4j中设置了监视器间隔。 XML却无法实现如何实现动态文件路径?

2 个答案:

答案 0 :(得分:0)

动态创建日志文件名和路径是在环境变量中设置路径 在log4j2.xml中,您可以执行以下操作: -

<RollingFile name="RollingFile" fileName="${sys:CustomapPath}/${sys:CustomapplicationName}_WARN.log"
filePattern="${sys:CustomapPath}/test/${sys:CustomapplicationName}-%d{yyyy-MM-dd}-WARN-%i.log">  

并在apps.properties中设置这些变量: -

CustomapplicationName=Common-logging-Util
CustomapPath=E:/backup/test/log

或者如果您想让它更具动态性,您可以将这些值从VM参数传递为-DCustomapPath=E:/backup/test/log -DCustomapplicationName=Common-logging-Util

,在独立服务器中为-M-DCustomapplicationName=Common-logging-Util -M-DCustomapPath=E:/backup/test/log

因此,现在当应用程序加载时,您将找到在您提到的位置生成的日志文件 但是一旦加载,您就无法从那里更改日志文件路径,因为它已经加载了文件位置。

答案 1 :(得分:0)

如果您希望对日志记录进行运行时更改,则需要在Java类中初始化新的Log4J记录器。否则,使用默认的Mule日志记录功能需要重新启动/重新初始化Mule应用程序。