我下载了一个需要从源码构建的大框架。该项目使用maven构建结构,并包含一个可以使用嵌入式jetty查看的演示应用程序。 Maven插件处理所有这些。
然而,当我运行演示应用程序(使用mvn jetty:run)时,我无法真正使用它,因为由于某种原因启用了登录DEBUG级别并且应用程序花费大部分时间记录了大量语句。响应能力几乎为零。
框架(geomajas 1.5.0)似乎使用SLF4J,但我无法弄清楚它的配置位置或关闭位置。
欢迎任何想法......谢谢!
更新 显然他们使用logback。我找到了配置文件(logback.xml),在其中我编辑了DEBUG级别并用ERROR替换它们
为了确保更改会传播,我清理了项目并重建了它。但问题仍然存在!
我手动查看了target
文件夹中的logback.xml文件,并且已经更新了。但我仍然看到日志记录!
更新2 我正在使用Windows 7顺便说一句。
答案 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>
亲切的问候, 勒夫