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