是否可以根据日志标记将logback日志分隔为单独的附加程序?

时间:2019-01-15 09:37:54

标签: logging logback slf4j

我在我的应用程序中使用带有SLF4J的Logback,并且想将几个特定的​​日志消息发送到与主日志文件分开的文件中。我真的不想对日志级别执行此操作,因为这意味着如果对级别进行了调整,我将无法从主日志中将它们过滤掉(或者我可以,但只能通过同时使用两个日志级别设置来搞定)

我知道logback为日志消息提供了Marker选项,这听起来似乎是最好的方法,但是,我尝试了各种建议的方法,从logback文档中过滤掉要么没有日志,要么有两个完全相同的完整日志文件。

非常感谢任何帮助。

尝试过:

https://logback.qos.ch/manual/appenders.html

<evaluator class="ch.qos.logback.classic.boolex.JaninoEventEvaluator">
<expression>
(marker != null) &amp;&amp; (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:

  • marker = fred-message1
  • marker = burt-message2
  • marker = ernie-message3
  • marker = stever-message6

dave.log:

  • 标记= dave-message4
  • 标记= dave-消息5

当前行为:

main.log:

  • marker = fred-message1
  • marker = burt-message2
  • marker = ernie-message3
  • 标记= dave-message4
  • 标记= dave-消息5
  • marker = stever-message6

dave.log:  -标记= fred-message1  -标记= Burt-message2  -标记= ernie-message3  -标记= dave-message4  -标记= dave-讯息5  -标记=严格-消息6

0 个答案:

没有答案
相关问题