The software I'm working on uses MDC for specific data (username, ip, runtime, etc.). I want some magazines to use a specific template using some MDCs, and some magazines to use a different template using different MDCs.
I thought that tokens would do the job, and I created different tokens, say: PROFILE_MARKER - used for profile logs AUDIT_MARKER - used for audit logs
I have 3 appenders in my logback.xml configuration file, one for both of my tokens, and one for all other logs:
<configuration> <appender name="profiler" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d [%t] [%X{USER}] [PROFILER] %-5p %m %X{TIME} ms %n</pattern> </encoder> <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> <marker>PROFILER</marker> </evaluator> <onMismatch>DENY</onMismatch> <onMatch>ACCEPT</onMatch> </filter> </appender> <appender name="audit" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d [%t] [%X{USER}] [AUDIT] %-5p IP=%X{IP},ID=%X{ID} %m %n</pattern> </encoder> <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> <marker>AUDIT</marker> </evaluator> <onMismatch>DENY</onMismatch> <onMatch>ACCEPT</onMatch> </filter> </appender> <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d [%t] [%X{USER}] %-5p %c - %m %n</pattern> </encoder> <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> <marker>AUDIT</marker> <marker>PROFILE</marker> </evaluator> <onMismatch>ACCEPT</onMismatch> <onMatch>DENY</onMatch> </filter> </appender> <root level="INFO"> <appender-ref ref="audit" /> <appender-ref ref="profiler" /> <appender-ref ref="stdout" /> </root>
I have the feeling that I am doing it wrong and that I should use only one appender and maybe use filters in different ways. However, I cannot figure out how to do this. Maybe markers are not a solution here?
Any help would be greatly appreciated.
slf4j logback mdc
Marie
source share