我有关于scala的项目。 我使用这个lib进行日志记录 https://github.com/typesafehub/scala-logging
我创建了记录器
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, "++++")
这是我的回归
<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 - ++++
现在我有一个问题:
答案 0 :(得分:1)
以下logback.xml
拒绝DP
和ST
个标记。
<configuration>
<turboFilter class="ch.qos.logback.classic.turbo.MarkerFilter">
<Marker>DP</Marker>
<OnMatch>DENY</OnMatch>
</turboFilter>
<turboFilter class="ch.qos.logback.classic.turbo.MarkerFilter">
<Marker>ST</Marker>
<onMatch>DENY</onMatch>
</turboFilter>
<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>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUTTime"/>
</root>
</configuration>
您档案的错误:
您的文件不是以<configuration>
开头,而是以</configuration>
结尾
过滤器不在正确的命名空间中。它们应该在<configuration>
下(与appender相同)。
在您的情况下无需使用<onMisMatch>
标志。这可能会导致混淆。
由于您的记录器被命名为ds.forwarding
,因此您必须确保在该类中调用该记录器。在您的情况下,您使用getClass
方法调用记录器。在我的logback.xml
文件中,我将appender
添加到我的root
记录器中。因此,通过Logger(getClass)
方法调用它就足够了。
要小心水平。我将关卡设置为DEBUG
。
正确设置配置后,如果您希望记录器将其打印,只需将<onMatch>
属性更改为ALLOW
,如果不想,则将DENY
更改为ALLOW
。如果将两者都设置为DENY
,只需将两者都设置为{{1}}将导致打印所有标记,则不会打印标记。