Hi

There is a JIRA ticket about to support this in the future.

You can use a custom UoW factory and extend the MDC factory we have an
add the logic you need. And then configure Camel to use your factory.
http://camel.apache.org/advanced-configuration-of-camelcontext-using-spring.html

On Fri, Sep 5, 2014 at 1:15 PM, Joni Nousiainen
<[email protected]> wrote:
> Hi!
>
> My use case: I want name log files based on XML file names that I'm
> processing. E.g. if the file name is "sample.xml" log output would go
> to "incoming.xml.log".
>
> I have read about MDC support in Camel and Karaf, and based on that
> I've come up with a working solution: I put the XML file name into MDC
> in the beginning of the processing like so:
>
> public class PutIncomingFileNameToMDC {
>     private static final String MDC_KEY_FILE_NAME = "fileName";
>
>     public void putIncomingFileNameToMDC(
>             @Header(Exchange.FILE_NAME_ONLY) String fileName) {
>         MDC.put(MDC_KEY_FILE_NAME, fileName);
>     }
> }
>
> Then I specify MDCSiftingAppender in Karaf's configuration. This
> solution works OK until I use a splitter with
> parallelProcessing="true" on one of my routes. I did some digging and
> found class MDCUnitOfWork which seems to fix this for Camel's
> predefined MDC values (exchangeId etc) when useMDCLogging is set to
> "true" in Came context.
>
> Any suggestions how should I apply the fix to my own custom MDC value
> ("fileName")? Would it be possible to get built-in support for this in
> Camel somehow?
>
> Camel version: 2.12.4
> Karaf version: 2.3.5
> Java version: 1.7.0_51
> Platform: Windows
>
> BR,
> Joni Nousiainen



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: [email protected]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/

Reply via email to