Using Mapped Diagnostic Context (MDC) logging, you create a separate log file for each of your applications. The basic idea of MDC logging is that you associate each logging message with a particular context (for example, by associating it with a set of key-value pairs). Later on, when it comes to writing the log stream, you can use the context data to sort or filter the logging messages in various ways.
![]() | Note |
|---|---|
MDC logging is supported only by log4j and slf4j. |
To use MDC logging, you must define a unique MDC key for each of your applications. The MDC key is a string that is associated with one application or logging context. At runtime, you can then use the application key to sort logging messages and write them into separate files for each application key.
To enable per application logging:
In each of your applications, edit the Java source code to define a unique application key.
If you are using slf4j, add the following static method call to your application:
org.slf4j.MDC.put("app.name","MyFooApp");If you are using log4j, add the following static method call to your application:
org.apache.log4j.MDC.put("app.name","MyFooApp");Edit the
etc/org.ops4j.pax.loggingPID to customize the sift appender.Set
log4j.appender.sift.keytoapp.name.Set
log4j.appender.sift.appender.fileto=${karaf.data}/log/$\\{app.name\\}.log.
Edit the
etc/org.ops4j.pax.loggingPID to add the sift appender to the root logger.FuseESB:karaf@root>config:edit org.ops4j.pax.loggingFuseESB:karaf@root>config:propset log4j.rootLogger "INFO, out, sift, osgi:VmLogAppender"FuseESB:karaf@root>config:update






![[Note]](imagesdb/note.gif)


