更新(2020 年 7 月)Jetty 10 及更高版本的答案
从Jetty 10.0.0开始,不再有“Jetty Logging”的门面。
Jetty项目已转向仅使用SLF4J 2.0。
9 号码头及更早版本的原始答案
文档是正确的,因为术语“Java Logging Framework”通常与现代日志记录框架相关联,如java.util.logging,slf4j,logback,log4j,commons-logging,logkit等。
这是正确的,Jetty不使用其中任何一个。
Jetty日志记录早于标准化日志记录框架的所有这些努力。(码头,其伐木层创建于1995年)
这就是 Jetty 日志记录在设置和配置方面所做的(并在文档站点上有记录)。
默认行为:
要配置:
这可以通过3种不同的方式实现
- 使用系统属性设置日志记录 impl
# 3 different options
-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog
-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog
-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.JavaUtilLog
- 使用从类路径中找到的自我发现/配置。
jetty-logging.properties
来自码头项目本身的例子:
# Configure for System.err output
org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog
# Configure StdErrLog to log all jetty namespace at default of WARN or above
org.eclipse.jetty.LEVEL=WARN
# Configure StdErrLog to log websocket specific namespace at DEBUG or above
org.eclipse.jetty.websocket.LEVEL=DEBUG
- 使用代码设置
Log.setLog(Logger)
这对于使用嵌入式码头的人来说特别有用
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.StdErrLog;
Log.setLog(new StdErrLog());
建议和注意事项:
Jetty 服务器启动的输出将为您提供有关它正在使用的日志记录实现的提示。
正常/默认行为:
2014-09-11 10:48:38.726:INFO::main: Logging initialized @378ms
2014-09-11 10:48:39.067:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/Users/joakim/Code/Jetty/distros/jetty-distribution-9.2.1.v20140609/demo-base/webapps/] at interval 1
请注意,这要么没有命名空间声明,要么在其输出中具有大量缩写的命名空间。这告诉我,正在使用中。StdErrLog
如果 slf4j 正在使用中:
10:50:18.871 [main] INFO org.eclipse.jetty.util.log - Logging initialized @352ms
10:50:19.102 [main] INFO o.e.j.d.p.ScanningAppProvider - Deployment monitor [file:/Users/joakim/Code/Jetty/distros/jetty-distribution-9.2.1.v20140609/demo-base/webapps/] at interval 1
这是 -> 的默认控制台追加器输出。这里的整体结构与所产生的结构非常不同,所以我现在可以通过实现来判断码头正在发射。slf4j
logback
StdErrLog
Slf4jLog