accessing multiple values in MDC with siftingappen

2019-08-01 17:11发布

问题:

I have a siftingappender that i use for a key in mdc to customize the file appenders. The problem is i cannot access multiple values from the configuration.

Is there a way to access 2 or more keys that exists in MDC?

回答1:

I had the same problem, and looking at the class it appeared it wasn't possible to use two discriminator keys. The solution I used was then to set a property containing the combination of this values at the beginning of the "session" :

String value1 = "a variable";
String username = "the username";
MDC.put("myDiscriminatingValue", value1 + username);

and then you just have to put "myDiscriminatingValue" in logback.xml as a discriminating value.

A more elegant way to achieve it would be to implement your own Discriminator class instead of MDCBasedDicriminator.