You could easyly write your own discriminator class combining
JNDIBasedContextDiscriminator and MDCBasedDiscriminator. Here is an example:
public class CombinedDiscriminator extends ContextAwareBase implements
Discriminator<ILoggingEvent> {
private String defaultMDCVal = "default";
public String getDiscriminatingValue(ILoggingEvent event) {
String mdcValue = defaultMDCVal;
Map<String, String> mdcMap = event.getMdc();
if (mdcMap != null) {
mdcValue = mdcMap.get(key);
}
String contextName = event.getLoggerContextVO().getName();
return contextName + mdcValue;
}
..etc
}
Thanks for reply, i started to implement, but i noticed that maybe i don't explain well, i dont need "sumValue = contextName + mdcValue" value to use in <FileNamePattern>${newValue}.log</FileNamePattern>
That i really need is two values... contextName and mdcValue...
The aprox, maybe something like <FileNamePattern>${newValue.substring(0,x)}/${newValue.substring(x,n)}.log</FileNamePattern>
or something like
<appender ... class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator class="ch.qos.logback.classic.sift.JNDIBasedContextDiscriminator">
...
<sift>
<appender ... class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator>
...
<sift>
<appender class="ch.qos.logback.core.rolling.RollingFileAppender">