昨天集成logback的filter的时候报了几个异常,这里记录下。
最开始遇到的好像是:
Exception in thread "main" java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level
我用的是springboot,使用spring-boot-starter-web的时候本身就引入了一些jar,但是这里显示的是这个异常。
在网上查了下,说是要去掉这里包含的jar(这种解决思路是包冲突):
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</exclusion>
可是去掉之后还是不行,又遇到:
java.lang.NoClassDefFoundError: org/codehaus/janino/ScriptEvaluator。
又搜了下,也参考了官网的例子,有引用另外一个jar:
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>3.0.7</version>
</dependency>
加入之后Ok了。
我这里要做的是过滤log中匹配的信息:
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator>
<expression>return message.contains("ping");</expression>
</evaluator>
<OnMismatch>NEUTRAL</OnMismatch>
<OnMatch>DENY</OnMatch>
</filter>
刚开始弄这个,只能一点点摸索,以后熟练了再来补充。奇怪的是今天一直没遇到过第一个异常。