logback指定自定义异常如何修改级别为info
时间: 2024-10-15 10:16:44 浏览: 36
在Logback中,如果你想将某个特定自定义异常的记录级别改为INFO,你需要配置一个对应的过滤器或者规则。首先,确保你已经有一个自定义的异常处理器(如`LoggingExceptionWrapper`),它继承了`LoggingEvent`并添加了异常信息。
然后,在Logback的配置文件(通常是`logback.xml`或`logback.groovy`)中,你可以这样做:
1. 创建一个新的`PatternLayoutConverter`,用于标记自定义异常的日志:
```xml
<conversionRule conversionWord="EXCEPTION" converterClass="net.logstash.logback.marker.PatternMarkerConverter">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n%ex{full}%n</pattern>
</conversionRule>
```
这里,`%ex{full}`将会包含完整的异常堆栈跟踪。
2. 配置一个过滤器(filter)来选择只对你的自定义异常应用新的级别:
```xml
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{ISO8601} %EXCEPTION{exceptionMarker} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
<!-- 指定你的自定义异常的标记 -->
<onMatch>DENY</onMatch>
<onMismatch>NEUTRAL</onMismatch>
</filter>
</appender>
```
在`<pattern>`标签中,`%EXCEPTION{exceptionMarker}`会使用我们之前定义的`EXCEPTION`转换器来显示自定义异常的信息。
3. 最后,为你的自定义异常指定一个标记,例如:
```xml
<logger name="your.package.YourCustomException" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
```
这表示只针对`your.package.YourCustomException`异常级别的日志会被送到控制台,并设置为INFO级别。
阅读全文