我在我的应用程序中使用带有SLF4J的Logback,并且想将几个特定的日志消息发送到与主日志文件分开的文件中。我真的不想对日志级别执行此操作,因为这意味着如果对级别进行了调整,我将无法从主日志中将它们过滤掉(或者我可以,但只能通过同时使用两个日志级别设置来搞定)
我知道logback为日志消息提供了Marker选项,这听起来似乎是最好的方法,但是,我尝试了各种建议的方法,从logback文档中过滤掉要么没有日志,要么有两个完全相同的完整日志文件。>
非常感谢任何帮助。
尝试过:
https://logback.qos.ch/manual/appenders.html:
<evaluator class="ch.qos.logback.classic.boolex.JaninoEventEvaluator">
<expression>
(marker != null) && (marker.contains("MY_MARKER")
</expression>
</evaluator>
https://logback.qos.ch/manual/filters.html:
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
<expression>return message.contains("billing");</expression>
</evaluator>
<OnMismatch>NEUTRAL</OnMismatch>
<OnMatch>DENY</OnMatch>
</filter>
所需结果:
main.log:
dave.log:
当前行为:
main.log:
dave.log: -标记= fred-message1 -标记= Burt-message2 -标记= ernie-message3 -标记= dave-message4 -标记= dave-讯息5 -标记=严格-消息6