Можно ли разделить журналы входа в систему для разделения приложений, основываясь на маркере журнала? - PullRequest
0 голосов
/ 15 января 2019

Я использую Logback с SLF4J, лежащим в основе моего приложения, и хотел бы отправить пару конкретных сообщений журнала в файл, отдельный от основного файла журнала. Я действительно не хочу делать это с уровнями журнала, поскольку это означало бы, что я не смог бы отфильтровать их из основного журнала, если бы уровни были настроены (или, скорее, я мог бы, но только путаясь с обоими настройками уровня журнала) .

Я знаю, что 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 = Фред - сообщение1
  • marker = burt - message2
  • marker = ernie - message3
  • маркер = стивер - сообщение6

dave.log:

  • marker = dave - message4
  • marker = dave - сообщение 5

Текущее поведение:

main.log:

  • маркер = Фред - сообщение1
  • marker = burt - message2
  • marker = ernie - message3
  • marker = dave - message4
  • marker = dave - сообщение 5
  • маркер = стивер - сообщение6

dave.log: - маркер = Фред - сообщение1 - маркер = бурт - сообщение2 - маркер = Эрни - сообщение3 - маркер = дэйв - сообщение4 - маркер = дэйв - сообщение 5 - маркер = стивер - сообщение6

...