登录:
timestamp INFO msg...
timestamp WARN msg...
timestamp INFO msg...
经典Java日志记录(JUL):
timestamp INFO msg...
timestamp WARNING msg...
timestamp INFO msg...
我希望警告级别长于INFO,因此在扫描日志输出时可以很容易地在视觉上区分它。
答案 0 :(得分:1)
您可以指定不同的登录方式来实现所需的功能-您可以将信息级别的日志记录发送到使用标准布局的附加程序,然后警告使用单词WARNING的其他附加程序:
<configuration debug="true">
<appender name="info" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>
%d{"ISO8601", UTC} %p %m%n
</pattern>
</encoder>
</appender>
<appender name="warn" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>
%d{"ISO8601", UTC} WARNING %m%n
</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="info"/>
<appender-ref ref="warn"/>
</root>
</configuration>
%p
参数被替换为原始消息日志级别,因此我们将其保留为信息模式,对于警告模式,我们不使用%p
,而是使用常量WARNING。
此配置将位于资源根目录下的logback.xml
文件中。
编辑
更改了xml配置以使用过滤器,并且只有一个根记录器
这里的想法是过滤掉第一个附加程序的所有警告级别,然后在第二个仅接受警告级别并覆盖日志以显示警告
示例输出:
2018-11-08 10:52:40,460 WARNING Exception calculating properties for model(...)
2018-11-08 10:52:40,757 INFO Generating unique operation named: ...