我第一次与 Jetty 一起使用 logback。我一切正常,但我确实有一件烦人的事情,我无法弄清楚。一旦 Jetty 启动,我就会开始得到一个包含以下内容的日志文件:
2013-03-02 11:19:23.933:DBUG:oeju.Scanner:scanned [C:\Code\jetty-8\contexts]: {}
2013-03-02 11:19:24.646:DBUG:oeju.Scanner:scanned [C:\Users\willie\AppData\Local\Temp\context5868271910991031759deploy]: {}
2013-03-02 11:19:24.938:DBUG:oeju.Scanner:scanned [C:\Code\jetty-8\webapps]: {}
2013-03-02 11:19:24.943:DBUG:oeju.Scanner:scanned [C:\Code\jetty-8\contexts]: {}
2013-03-02 11:19:25.655:DBUG:oeju.Scanner:scanned [C:\Users\willie\AppData\Local\Temp\context5868271910991031759deploy]: {}
2013-03-02 11:19:25.948:DBUG:oeju.Scanner:scanned [C:\Code\jetty-8\webapps]: {}
2013-03-02 11:19:25.952:DBUG:oeju.Scanner:scanned [C:\Code\jetty-8\contexts]: {}
2013-03-02 11:19:26.665:DBUG:oeju.Scanner:scanned [C:\Users\willie\AppData\Local\Temp\context5868271910991031759deploy]: {}
2013-03-02 11:19:26.958:DBUG:oeju.Scanner:scanned [C:\Code\jetty-8\webapps]: {}
2013-03-02 11:19:26.963:DBUG:oeju.Scanner:scanned [C:\Code\jetty-8\contexts]: {}
2013-03-02 11:19:27.675:DBUG:oeju.Scanner:scanned [C:\Users\willie\AppData\Local\Temp\context5868271910991031759deploy]: {}
2013-03-02 11:19:27.968:DBUG:oeju.Scanner:scanned [C:\Code\jetty-8\webapps]: {}
2013-03-02 11:19:27.973:DBUG:oeju.Scanner:scanned [C:\Code\jetty-8\contexts]: {}
logback 中过滤的语法有点神秘,我不知道如何告诉 logback 忽略这些扫描事件。我已经尝试过显而易见的
<filter class="oeju.Scanner" />
但它不起作用。任何人都可以在这方面给我一点帮助吗?
最佳答案
您看到的日志格式不是 logback
2013-03-02 11:19:26.665:DBUG:oeju.Scanner:scanned ....
这是 Jetty 自己的内部
StdErrLog
生成的日志格式。所以用 logback 过滤掉它是行不通的(还)。
如何在 Jetty 中使 logback 工作
首先,确保您的服务器类路径中存在 slf4j-api 和 logback jar。
完成此操作的最简单方法是将它们放入
${jetty.home}/lib/ext/
中,并通过在命令行上快速检查来验证它们是否存在。$ java -jar start.jar --version
这将向您显示服务器类路径中的内容。
现在开始 jetty 。应该检测到 slf4j-api 类,并且内部日志记录从
StdErrLog
切换到 Slf4jLog
。此时你只需要配置 logback。通常带有
${jetty.home}/resources/logback.xml
文件。 (参见 logback documentation 了解 details )oeju.Scanner
的含义 至于
oeju.Scanner
部分,这是 StdErrLog 为命名记录器 org.eclipse.jetty.util.Scanner
生成的缩写的完全限定类名。看看它如何只使用每个包命名空间段的第一个字母来形成 oeju
?如何在 logback 中过滤 Scanner 事件
在您的 logback.xml 中,使用以下内容代替您的问题,将该特定类的日志记录级别设置为 INFO。
<logger name="org.eclipse.jetty.util.Scanner" level="info" />
关于jetty - 使用 logback 过滤掉扫描仪事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15176797/