2

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

但是,当我运行演示应用程序(使用 mvn jetty:run)时,我不能真正使用它,因为由于某种原因,在 DEBUG 级别上的日志记录已打开,并且应用程序大部分时间都在记录大量语句。响应能力几乎为零。

该框架(geomajas 1.5.0)似乎使用SLF4J,但我无法弄清楚它在哪里配置或在哪里可以关闭。

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

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

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

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

4

4 回答 4

7

禁用日志记录的最简单和最直接的方法确实是使用 NOP绑定。为此,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

于 2010-01-15T18:02:18.530 回答
1

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

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

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

mvn jetty:run > dev/null 2>&1 }

高温高压

于 2010-01-15T11:40:12.933 回答
0

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

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

对于这个例子,org.hibernate 包中的类将没有日志。

于 2010-01-15T11:33:24.573 回答
0

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

可以使用如下配置文件来关闭所有功能:

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

亲切的问候,约阿希姆

于 2010-08-14T19:32:06.687 回答