私はscalaに関するプロジェクトを持っています。 私は私のコントローラでログを使用し、私はロガーログバックのフィルターマーカー
import com.typesafe.scalalogging.Logger
val log = Logger(getClass)
と二つのマーカー
import org.slf4j.{Marker, MarkerFactory}
private val marker: Marker = MarkerFactory.getMarker("DP")
private val marker2: Marker = MarkerFactory.getMarker("ST")
を作成 https://github.com/typesafehub/scala-logging
を記録するために、このLIBを使用
log.debug(marker, "----"
log.debug(marker2, "++++")
これが私のlogbackです
<appender name="STDOUTTime" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%coloredLevel %logger{30} - %marker - %d{yyyy/MM/dd/HH:mm:ss.SSS/Z} - %message%n%xException{3}</pattern>
</encoder>
<turboFilter class="ch.qos.logback.classic.turbo.MarkerFilter">
<Marker>DP</Marker>
<OnMatch>DENY</OnMatch>
<OnMismatch>DENY</OnMismatch>
</turboFilter>
<turboFilter class="ch.qos.logback.classic.turbo.MarkerFilter">
<Marker>ST</Marker>
<onMatch>DENY</onMatch>
<onMismatch>DENY</onMismatch>
</turboFilter>
</appender>
<logger name="ds.forwarding" level="DEBUG">
<appender-ref ref="STDOUTTime"/>
</logger>
<root level="ERROR">
</root>
私は私のコントローラを実行したときに、今私は、コンソールに出力を持っている:
[debug] d.f.c.a.s.InputStatisticController - DP - 2017/09/25/11:55:58.603/+0300 - ----
[debug] d.f.c.a.s.InputStatisticController - ST - 2017/09/25/11:55:58.603/+0300 - ++++
今私は疑問を持っている:
- なぜマーカーとMARKER2なぜDENYが動作しないのですか?
- 2つのマーカーを除外するにはどうすればよいですか?
- マーカーを1つだけ除外するにはどうすればよいですか?
これは、ロガーとロギングを作成したクラス名またはパッケージ名が 'test'である可能性があります。そのため、ルートロガーより優先されます – Rjk