Hi,

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">

SiftingAppender inside SiftingAppender to use MDC and contextName.

Any suggestion?

And thanks again.

--
Jose Juan Montiel Martinez
Eurobits Technologies
Calle Musgo 3, 1ª Planta
28023 Madrid
T +34-917080300
F +34-913077480
josejuan.montiel@eurobits.es
http://www.eurobits.com