我在scala上有项目。 我用这个lib中记录 https://github.com/typesafehub/scala-logginglogback中的过滤器标记
我创造记录
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")
我用日志在我的控制器
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 - ++++
现在我有一个问题:
- 为什么标记和标记2是可见的,为什么DENY不起作用?
- 如何排除两个标记?
- 如何排除只有一个标记?
这可能是因为,您创建记录器和日志记录的类名称或包名称是'test'。所以它优先于根记录器 – Rjk