如何使用Jetty embedded启用调试级日志记录?

如何使用Jetty embedded启用调试级日志记录?,jetty,slf4j,Jetty,Slf4j,我试图在嵌入式Jetty实例中将日志记录级别设置为DEBUG 位于的文档称为- 在调用new之前调用SystemProperty.set(“DEBUG”、“true”) org.mortbay.jetty.Server() 我不确定什么是SystemProperty类,它似乎在任何地方都没有文档记录。我尝试了System.setProperty(),但没有成功。我的问题在Jetty邮件列表上由Joakim Erdfelt回答: 您正在docs.codehaus.org上查看旧Jetty 6.x文

我试图在嵌入式Jetty实例中将日志记录级别设置为
DEBUG

位于的文档称为-

在调用new之前调用SystemProperty.set(“DEBUG”、“true”) org.mortbay.jetty.Server()


我不确定什么是
SystemProperty
类,它似乎在任何地方都没有文档记录。我尝试了
System.setProperty()
,但没有成功。

我的问题在Jetty邮件列表上由Joakim Erdfelt回答:

您正在docs.codehaus.org上查看旧Jetty 6.x文档

调试日志记录只是由日志记录确定的日志记录级别 您选择使用的实现

  • 如果使用slf4j,则使用slf4j的文档来配置日志记录级别

  • 如果使用java.util.logging,请使用JVM文档

  • 如果使用内置的StdErrLog,则有一种模式可以遵循

-D{classref}.LEVEL={LEVEL}

其中{classref}是要设置级别的类引用, 和所有子类参考。{level}是所有值中的一个,DEBUG, 信息,警告

例如: -Dorg.eclipse.jetty.LEVEL=INFO-这将为所有jetty包/类启用信息级日志记录。 -Dorg.eclipse.jetty.io.LEVEL=DEBUG-这将仅为io类启用调试级别日志记录 -Dorg.eclipse.jetty.servlet.LEVEL=ALL-这将为servlet启用所有日志记录(跟踪事件、内部忽略的异常等) 包装。 -Dorg.eclipse.jetty.util.thread.QueuedThreadPool.LEVEL=ALL—这将仅在特定类上启用LEVEL ALL+


如果您只想快速将日志消息获取到stderr,请在java命令行中添加类似的内容:

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

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

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

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

什么版本的码头?在类路径上有什么日志框架?我目前正在使用Jetty 7.5.4,但实际上可以使用任何版本。对于日志记录,我对我的非Jetty代码使用log4j,只是让Jetty中的SLF4J默认为NOP logger实现(它写入调试控制台,这是我所需要的)。+1,这是唯一对我有效的解决方案,尽管我不明白为什么第一个选项需要第二个选项才能工作……我花了4个小时才找到它,但是在这里。谢谢