我想将日志目录从 MULE_HOME / logs 更改为 MULE_HOME / logs / apps 。我发现的唯一一个引用文件路径的地方是 MULE_HOME / conf / wrapper.conf 。编辑 wrapper.logfile 允许我重新定位mule_ee.log文件,该文件似乎是Mule应用程序日志,但我也想在那里包含Mule应用程序日志。如果我创建一个名为FOO的应用程序并将其部署到运行时环境,它将创建一个名为 MULE_HOME / logs / mule-app-FOO.log 的文件,但更改位置似乎很难完全搞乱写自定义log4j2 XML文件。
答案 0 :(得分:1)
如果你有Mule版本3.6+,那么建议使用 log4j2.xml 而不是 log4j.xml ....使用log4j2你可以改变路径并获取您的应用程序日志......一个简单的例子是: -
<RollingFile name="RollingFile" fileName="${env:MULE_HOME}/logs/${sys:CustomapplicationName}.log"
filePattern="${env:MULE_HOME}/logs/${sys:CustomapplicationName}-%d{yyyy-MM-dd}-%i.log"> <!-- CustomapplicationName is set at mule-app.properties or in VM argument in Run As Configure as -DCustomapplicationName=Log4j -->
<PatternLayout>
<pattern>%d{dd/MMM/yyyy HH:mm:ss,SSS}- %c{1}: %m%n</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="120 KB" />
</Policies>
<DefaultRolloverStrategy max="1" />
</RollingFile>
将上面的代码放在src/main/resource
文件夹的log4j2.xml中
在上面您可以看到,您已经在此处提到了日志文件的路径: -
<RollingFile name="RollingFile" fileName="${env:MULE_HOME}/logs/apps/${sys:CustomapplicationName}.log"
filePattern="${env:MULE_HOME}/logs/apps/${sys:CustomapplicationName}-%d{yyyy-MM-dd}-%i.log">
其中${sys:CustomapplicationName}
是在mule-app.properties中设置的系统变量,如下所示: -
CustomapplicationName=yourApplicationName
答案 1 :(得分:0)
正确的方法是为FOO应用程序提供log4j属性/ xml文件,并为FOO应用程序日志定义所需的路径。这种方式将确保mule_ee.log不会混乱,同时其他应用程序也将拥有自己的日志文件,这些文件易于管理,并且在出现错误/异常时易于内省特定的应用程序日志
答案 2 :(得分:0)
在log4j.properties文件中定义位置。