我想打印mule配置文件名,在流程的记录器中,我该如何获取它?
假设test.xml中的配置文件名,里面有一个流有记录器,打印 test.xml ,我怎么能得到它?
<flow name="filenameFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/Hello" doc:name="HTTP"/>
<logger message="#[app.name.toString()]" level="INFO" doc:name="Logger"/>
</flow>
答案 0 :(得分:0)
应打印出您的应用程序名称,在您的情况下为“test”。但这不是xml文件的名称。 #[flow.name]将为您提供当前正在执行的流的名称。
答案 1 :(得分:0)
你应该使用#[flow.name]
,这是正确的形式。不要误导你的答案。
谢谢,
答案 2 :(得分:0)
Try these expressions:
1) #[message.outboundProperties['originalFileName']]
2) #[header:originalFilename]
答案 3 :(得分:0)
global element
类型property placeholder
,即可获得location: mule-deploy.properties
。
在记录器中,使用${config.resources}
。
如果只有一个配置文件,它将起作用。
答案 4 :(得分:0)
就像@dlb解释的那样,我也想知道你可能有更好的解决方案来满足你的要求,基本上我认为你想让日志更透明,更容易找到导致任何事件/错误的流程。
因此,记录流名称而不是配置文件名更有意义,配置文件名可能包含多个流。您可以使用日志组件中的类别来实现此目的:
<logger level="INFO" category="${application-prefix}.myMainFlow" doc:name="Logger" message="#['payload is ---\n' + payload]"/>
在每个日志组件中(日志应该在重要的地方用于里程碑),在catagory中输入$ {application-prefix} .flowName(属性用于在所有日志中重用应用程序的名称,flowName应该是硬编码的),然后你会在运行时找到如下的日志:
INFO 2016-09-07 17:00:27,566 [[test].HTTP_Listener_Configuration.worker.01] com.myOrg.myApp.myMainFlow: payload is ---
Hello World
答案 5 :(得分:0)
#[message.outboundproperties[originalFilename]]
试试这个表达。