从maven禁用jetty的日志记录

时间:2010-01-15 11:22:25

标签: java maven-2 jetty slf4j

我下载了一个需要从源码构建的大框架。该项目使用maven构建结构,并包含一个可以使用嵌入式jetty查看的演示应用程序。 Maven插件处理所有这些。

然而,当我运行演示应用程序(使用mvn jetty:run)时,我无法真正使用它,因为由于某种原因启用了登录DEBUG级别并且应用程序花费大部分时间记录了大量语句。响应能力几乎为零。

框架(geomajas 1.5.0)似乎使用SLF4J,但我无法弄清楚它的配置位置或关闭位置。

欢迎任何想法......谢谢!

更新 显然他们使用logback。我找到了配置文件(logback.xml),在其中我编辑了DEBUG级别并用ERROR替换它们                             

为了确保更改会传播,我清理了项目并重建了它。但问题仍然存在! 我手动查看了target文件夹中的logback.xml文件,并且已经更新了。但我仍然看到日志记录!

更新2 我正在使用Windows 7顺便说一句。

4 个答案:

答案 0 :(得分:7)

禁用日志记录的最简单,最直接的方法是使用NOP binding。为此,请编辑geomajas/geomajas-dojo-example/pom.xml并将日志记录依赖项更改为:

    <!-- logging dependencies, delegate all to slf4j and use logback -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.5.8</version>
    </dependency>
    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-nop</artifactId>
       <version>1.5.8</version>
    </dependency>

并运行mvn jetty:run

答案 1 :(得分:1)

查看此slf4j手册/概述http://www.slf4j.org/manual.html看起来您可以使用slf4j NOP jar(slf4j-nop-1.5.10.jar)关闭所有日志记录。因此,您可能需要使用NOP jar在项目WEB-INF / lib文件夹中查找并替换当前的slf4j实现jar。

虽然很可能它正在使用log4j实现,但如果是这种情况,则需要找到log4j.xml或log4j.properties并编辑/删除它们。它们可能很难找到 - 首先查看WEB-INF / classes然后在某种配置目录中将是一个良好的开端。

编辑{ 有点难看,但如果你只是想让它尽可能快地运行,你可以将stdout和stderr重定向到/ dev / null,这会使它更快一点,因为它不会写入磁盘或控制台:

mvn jetty:run&gt; dev / null 2&gt;&amp; 1 }

HTH

答案 2 :(得分:0)

尝试找出log4j配置(如果它用于记录) - 可能是log4j.xml(或log4j.properties)文件。如果从类路径中删除此文件,则根本不会记录任何日志。如果要降低日志级别,请尝试在此文件中注释掉一些记录器部分,例如

<!--<logger name="org.hibernate">
    <level value="debug"/> 
    <appender-ref ref="hibernate-file"/>
</logger>-->

对于此示例,org.hibernate包中没有类的日志。

答案 3 :(得分:0)

Geomajas对示例应用程序使用logback。您可以使用src / main / resources中的logback.xml文件配置日志记录。

关闭所有内容可以使用如下配置文件来完成:

<configuration>
    <root>
        <level value="OFF"/>
    </root>
</configuration>

亲切的问候, 勒夫