如何设置Jetty的整体日志记录级别SLF4J + Logback?

时间:2015-11-19 09:24:14

标签: java jetty slf4j logback

我在我的应用程序中使用Jetty http客户端。我也在使用SLF4J和LogBack。

如何将Jetty的整体日志记录级别设置为INFO?

我按照Jetty文档上的说明提供了jetty-logging.properties文件,内容如下:

# Configure Jetty for SLf4j Logging
org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog
# Overall Logging Level is INFO
org.eclipse.jetty.LEVEL=INFO

Jetty通过SLF4J正常登录,但LEVEL设置似乎不起作用。

当我从Logback配置设置级别然后它可以工作,但我希望我的代码以DEBUG级别和Jetty级别登录。

Jetty在DEBUG级别非常嘈杂。

感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

您需要设置属性....

table, tr, td {
    border-collapse: collapse;
    padding: 0 10px;
    margin: 0;
}
tr.selectable {
    background-color: #ddd;
    cursor: pointer;
}
tr.selectable:hover {
    background-color: #eee;
}
tr.selected {
    background-color: #000;
    color: white;
}
tr.selected:hover {
    background-color: #333;
}

<table>
    <tr class="selectable">
        <td>1.1</td>
        <td>1.2</td>
    </tr>
    <tr class="selectable">
        <td>2.1</td>
        <td>2.2</td>
    </tr><tr class="selectable">
        <td>3.1</td>
        <td>3.2</td>
    </tr>
</table>

$( "table" ).on( "click", "tr.selectable", function() {
    $( ".selectable" ).removeClass( "selected" );
    $( this ).addClass( "selected" );
});

答案 1 :(得分:0)

我无法让Jetty登录自定义级别。因为如果Jetty在我的应用程序中找到SLF4J,那么它将开始使用我在logback.xml配置文件中指定的日志记录级别。

所以我做了一点黑客。我指定Jetty使用Java Utils Logging并将level设置为INFO。

            // Setting Jetty logger implementation and level (DEBUG | INFO | WARN | IGNORE)
            System.setProperty("org.eclipse.jetty.util.log.class",
                    "org.eclipse.jetty.util.log.JavaUtilLog");
            System.setProperty("org.eclipse.jetty.util.log.class.LEVEL", "INFO");

为了将Java Utils Logging消息重定向到SLF4J,我使用了jul-to-slf4j-1.7.12.jar

这是我如何运作的。如果有更好的方法我肯定想知道。