如何抑制 logback-access 中某些请求的日志记录?
我正在使用 Jetty 的 logback-access 。它工作正常,除了图像(*.jpg
、*.gif
)的http请求被记录。大多数应用程序服务器都会抑制这些日志记录,因为它们会导致日志膨胀。
当我使用旧的 Jetty NCSARequestLog
对象时,有一个 setIgnorePaths()
方法可以工作,但 logback RequestLogImpl
没有类似的方法。
我很确定在 logback-access.xml
中有一种方法可以做到这一点,也许使用某种过滤器。有人有合适的语法吗?
I'm using logback-access with Jetty. It's working fine, except that http requests for images (*.jpg
, *.gif
) are getting logged. Most app servers suppress these log records because they bloat the logs.
When I was using the old Jetty NCSARequestLog
object, there was a setIgnorePaths()
method that worked, but the logback RequestLogImpl
doesn't have a similar method.
I'm pretty sure there's a way to do it in logback-access.xml
, perhaps using some kind of filter. Does anyone have the appropriate syntax?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
logback-access 有
ch.qos.logback.access.net.URLEvaluator
,可以用来代替 Janino 的内联脚本:在
URLEvaluator
内部使contains()
因此匹配可以发生在 url 的任何部分。恕我直言,最好避免使用 Janino 库
logback-access has
ch.qos.logback.access.net.URLEvaluator
that can be used instead of inline scripts with Janino :Inside the
URLEvaluator
makescontains()
so the matching can happens on any part of url.IMHO it's better to avoid to use the Janino library
这是一个简单的
EvaluatorFilter
配置,复制到您的附加程序中:也许您应该自定义表达式,因为
.gif
和.jpg
可能出现在其他也记录消息。EvaluatorFilter
需要以下依赖项。将其放入您的pom.xml
中,或者如果您不使用 Maven,则添加到您的类路径中:更多 EvaluatorFilter 文档
Here is a simple
EvaluatorFilter
configuration, copy inside your appender:Maybe you should customize the expression, since
.gif
and.jpg
could occur in other log messages too.EvaluatorFilter
needs the following dependency. Put it to yourpom.xml
or add to your classpath if you don't use Maven:Further EvaluatorFilter documentation