我想按照此处所述设置 Jetty 进行日志记录 - http://www.eclipse.org/jetty/documentation/current/configuring-jetty-request-logs.html
但是启动过程结束时出现错误:
[WARNING] Config error at <Set name="handler">
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection"><Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler"><Item>
<New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
</Item><Item>
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
</Item><Item>
<New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"/>
</Item></Array>
</Set></New>
</Set>
[WARNING] Failed startup of context JettyWebAppContext@2fa8ecf4@2fa8ecf4/,file:/.../test/JettyMavenHelloWarApp/src/main/webapp/,file:/.../test/JettyMavenHelloWarApp/src/main/webapp/
java.lang.NoSuchMethodException: class org.mortbay.jetty.plugin.JettyWebAppContext.setHandler(class org.eclipse.jetty.server.handler.HandlerCollection)
at org.eclipse.jetty.xml.XmlConfiguration.set(XmlConfiguration.java:455)
at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:254)
at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:196)
at org.eclipse.jetty.webapp.JettyWebXmlConfiguration.configure(JettyWebXmlConfiguration.java:82)
at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:470)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1127)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:577)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:491)
at org.mortbay.jetty.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:160)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
at org.eclipse.jetty.server.handler.HandlerCollection$1.run(HandlerCollection.java:200)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450)
at java.lang.Thread.run(Thread.java:695)
WEB-INF 内的 jetty-web.xml 具有以下配置:
<Set name="handler">
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler">
<Item>
<New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
</Item>
<Item>
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
</Item>
<Item>
<New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"/>
</Item>
</Array>
</Set>
</New>
</Set>
<Ref refid="RequestLog">
<Set name="requestLog">
<New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
<Arg><SystemProperty name="jetty.logs" default="./logs"/>/yyyy_mm_dd.request.log</Arg>
<Set name="retainDays">90</Set>
<Set name="append">true</Set>
<Set name="extended">false</Set>
<Set name="LogTimeZone">GMT</Set>
</New>
</Set>
</Ref>
我做错了什么?
我使用下一个命令编译并运行我的 WAR 文件:
mvn jetty:run
最佳答案
我认为它在
<!-- =========================================================== -->
<!-- Set handler Collection Structure -->
<!-- =========================================================== -->
<Set name="handler">
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler">
...
<!-- Built-in Jetty AccessLog log -->
<Item>
<New id="AccessLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"/>
</Item>
...
</Array>
</Set>
</New>
</Set>
<!-- Built-in Jetty AccessLog log -->
<Ref id="AccessLog">
<Set name="requestLog">
<New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
<Set name="filename"><SystemProperty name="jetty.logs" default="./logs"/>/access.yyyy_mm_dd.log</Set>
<Set name="filenameDateFormat">yyyyMMdd</Set>
<Set name="retainDays">7</Set>
<Set name="append">true</Set>
<Set name="extended">false</Set>
<Set name="logLatency">true</Set>
<Set name="LogTimeZone">GMT</Set>
</New>
</Set>
</Ref>
我设置了处理程序并为其命名,然后通过其 配置处理程序。文件名在
另请注意,它是您在 中设置的“id”属性,而不是像示例配置所示的“refid”属性。
关于java - Jetty 日志记录配置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25388019/