2012-02-10 37 views
27

我试图在嵌入式Jetty实例中将日志记录级别设置为DEBUG如何使用嵌入式Jetty启用DEBUG级别日志记录?

http://docs.codehaus.org/display/JETTY/Debugging文档说来 - 调用new org.mortbay.jetty.Server前

呼叫SystemProperty.set( “调试”, “真”),()。

我不确定SystemProperty类是什么,它似乎没有记录在任何地方。我试过System.setProperty(),但那并没有办法。

+0

什么版本的Jetty?你在类路径上有什么日志框架? – Tim 2012-02-11 00:35:04

+0

我目前使用Jetty 7.5.4,但可以真正使用任何版本。对于日志记录,我将log4j用于我的非Jetty代码,并让JEtty中的SLF4J默认为NOP记录器实现(它将写入调试控制台,这正是我需要的)。 – HolySamosa 2012-02-13 17:51:02

回答

24

我的问题回答了乔金 - Erdfelt Jetty的邮件列表:

您正在寻找在docs.codehaus.org老码头6.x的文档。

DEBUG日志记录只是一个日志记录级别,由您选择使用的日志记录 实施确定。

-D {} classref .LEVEL = {}水平

其中{} classref是你想设置, 水平和所有子类裁判的类引用。和{水平}是值之一ALL,DEBUG, INFO,WARN

示例: -Dorg.eclipse.jetty.LEVEL = INFO - 这将使INFO级记录所有码头包/类。 -Dorg.eclipse.jetty.io.LEVEL = DEBUG - 这将启用仅针对IO类的DEBUG级别日志记录 -Dorg.eclipse.jetty.servlet.LEVEL = ALL - 这将启用所有日志记录(跟踪事件,内部忽略的异常,等等)。用于servlet 包。 -Dorg.eclipse.jetty.util.thread.QueuedThreadPool.LEVEL = ALL - 这将仅在特定类上启用级别ALL +。

11

如果你只是想快速获得消息记录到标准错误这样添加一些java命令行:

-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -D{classref}.LEVEL=DEBUG 
8

添加此

-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog 
-Dorg.eclipse.jetty.LEVEL=DEBUG 

Snap of Eclipse Configuration

+1

+1,这是唯一的解决方案,我工作,但我不明白为什么第一个选项需要第二个工作... – 2017-01-10 23:32:38

+0

我花了4个小时才找到这个,但它在这里。谢谢。 – Richard 2017-06-07 10:58:29

0

你可以使用此代码段来启用日志记录:

import org.eclipse.jetty.util.log.Log; 
import org.eclipse.jetty.util.log.StdErrLog; 
. 
. 
. 
StdErrLog logger = new StdErrLog(); 
logger.setDebugEnabled(true); 
Log.setLog(logger); 
相关问题