我继承了一个没有定义日志配置的jetty项目,但调试日志似乎以某种方式启用了。当我尝试添加具有此配置的src/main/resources/jetty-logging.properties
文件时,似乎没有任何变化。
org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog
org.eclipse.jetty.LEVEL=INFO
ca.uhn.fhir.context.LEVEL=INFO //3rd party library causing DEBUG logs
当我使用jetty mvn -Djetty.http.port=8080 jetty:run
的maven插件在本地启动该服务时
我可以看到指示org.eclipse.jetty.util.log.Slf4jLog的默认jetty日志记录包的日志
[INFO] Logging initialized @11194ms to org.eclipse.jetty.util.log.Slf4jLog
[INFO] Context path = /
[INFO] Tmp directory = ${LocalPath}\eclipse-workspace\cql-execution-service\target\tmp
[INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
[INFO] Web overrides = none
[INFO] web.xml file = file:///${LocalPath}/cql-execution-service/src/main/webapp/WEB-INF/web.xml
[INFO] Webapp directory = ${LocalPath}\src\main\webapp
[INFO] jetty-9.4.7.v20170914
[INFO] Scanning elapsed time=15583ms
[INFO] DefaultSessionIdManager workerName=node0
[INFO] No SessionScavenger set, using defaults
[INFO] Scavenging every 660000ms
[INFO] Started o.e.j.m.p.JettyWebAppContext@2b148329{/,file:///${LocalPath}/cql-execution-service/src/main/webapp/,AVAILABLE}{file:///${LocalPath}/cql-execution-service/src/main/webapp/}
[INFO] Started ServerConnector@69f69078{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
[INFO] Started @32649ms
[INFO] Started Jetty Server
这是我的web.xml文件:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>CqlExecSvc</display-name>
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>CqlEngine</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>org.opencds.cqf.cql.execution</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CqlEngine</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
然而,在我的日志中,我可以看到许多来自第三方包的调试语句,并且我找不到任何其他的日志配置。关于下一步要检查什么,有什么想法吗?
发布于 2021-11-11 19:51:18
在Jetty 9.x中,配置...
org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog
我将对基于org.eclipse.jetty.util.log.Logger
的日志记录事件使用内置的记录器,并将它们发送到System.err
(也称为STDERR
/标准错误)
这只查找来自特定于Jetty的记录器外观的日志记录事件,而不查找其他事件。
如果你想要更复杂的东西,你必须正确地设置像slf4j和logback这样的东西来捕获来自任何地方的日志事件(例如:java.util.logging
,log4j
,slf4j
,commons-logging
等),并将它们路由到你特定的logback附加器。
在Jetty 10+中,特定于Jetty的日志外观已被删除,取而代之的是slf4j。所有日志记录都是通过该接口完成的,这为您提供了跨各种日志记录实现的大量配置级别。
https://stackoverflow.com/questions/69933358
复制相似问题