Mar*_*rie 12 logback markers slf4j mdc
我正在使用的软件使用MDC来获取特定数据(用户名,IP,执行时间等).我希望一些日志使用某些MDC使用特定模式,而某些日志使用其他模式使用其他MDC.
我认为标记可以完成这项工作,我设置了不同的标记,比如说:PROFILE_MARKER - 用于配置文件日志AUDIT_MARKER - 用于审计日志
我的logback.xml配置文件中有3个appender,一个用于我的标记,另一个用于所有其他日志:
<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>
Run Code Online (Sandbox Code Playgroud)
我觉得我做错了,我应该只使用一个appender,并且可能使用不同的过滤器.但是我无法弄清楚如何.也许标记不是这里的解决方案?
任何帮助将不胜感激.
| 归档时间: |
|
| 查看次数: |
1530 次 |
| 最近记录: |