如何在 Logback 中不记录特定类型的异常?
如何配置 Logback 以忽略特定类型异常的日志记录?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何配置 Logback 以忽略特定类型异常的日志记录?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
您可以使用简单的
EvaluatorFilter
来完成此操作:请注意,您还需要在
pom.xml
中添加以下依赖项:另一种可能的解决方案是自定义
Filter< /code> 实现:
使用正确的配置:
在
TurboFilter
直接获取抛出的Throwable
实例,这样就可以调用isInstance
方法,无需手动转换IThrowableProxy
到ThrowableProxy
。更多文档
You can do it with a simple
EvaluatorFilter
:Please note that you need the following dependency in your
pom.xml
as well:Another possible solution is a custom
Filter
implementation:With a proper config:
In a
TurboFilter
you get the thrownThrowable
instance directly, so you can call theisInstance
method without manually casting theIThrowableProxy
toThrowableProxy
.Further documentation
这个问题已有 5 年历史了,但我提供我找到的解决方案只是为了使其保持最新状态。
我在官方文档中找到了解决方案:
http://logback.qos.ch/manual/layouts.html
对于我的特殊情况,这是一个运行普通旧 servlet(啊,那些日子)的 17 年老网站,如果用户未登录,servlet 现在会抛出异常。所以这是我的代码片段:
Servlet
web.xml
从上面的设置来看,我不想记录此异常,因为它并不是真正的异常,而是重定向到登录的逻辑中断。
因此,我的 logback.xml 文件的开头是这样的:
在 logback.xml 文件中,我的附加程序如下:
另请注意,为了完成这项工作,我必须包含 janino 来处理表达式解析。
This question is 5 years old, but I'm supplying the solution I found just to keep it up to date.
I found a solution in the offical docs:
http://logback.qos.ch/manual/layouts.html
For my particular situation, which is a 17 year old web site running plain old servlets (ah, the days), the servlet is now throwing an exception if the user was not logged in. So here's my code snippets:
Servlet
web.xml
From the setup above, I didn't want to log this exception as it's not really an exception, but rather a break in logic to redirect to login.
So, the start of my logback.xml file is this:
and further down in the logback.xml file, my appenders:
Also note, in order to this work, I had to include janino to handle the expression parsing.
这是 @palacsint 响应的另一个示例,当错误不是使用 JaninoEventEvaluator:
This is an additional example of the response of @palacsint that apply when the error is not an exception using JaninoEventEvaluator: