我正在使用xsbt-web-plugin
开发网络服务。
为了更容易调试,我想在控制台中打开请求日志,如下所示。
[22/Dez/2012:15:29:56 +0000]“获取/消息 HTTP/1.1”200 27276
在生产中我使用NCSARequestLog
的很好,但在开发中我想在我通过/sbt console
启动容器的地方包含日志container:start
如何启用请求日志?
我正在使用xsbt-web-plugin
开发网络服务。
为了更容易调试,我想在控制台中打开请求日志,如下所示。
[22/Dez/2012:15:29:56 +0000]“获取/消息 HTTP/1.1”200 27276
在生产中我使用NCSARequestLog
的很好,但在开发中我想在我通过/sbt console
启动容器的地方包含日志container:start
如何启用请求日志?
要启用请求日志,您可以NCSARequestLog
通过自定义jetty.xml文件进行配置。
将此添加到build.sbt:
env in Compile := Some(file(".") / "jetty-env.xml" asFile)
创建myproject/jetty-env.xml:
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="handler">
<New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler">
<Set name="requestLog">
<New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
<Set name="filename"><Property name="jetty.logs" default="./logs"/>/test-yyyy_mm_dd.request.log</Set>
<Set name="filenameDateFormat">yyyy_MM_dd</Set>
<Set name="LogTimeZone">GMT</Set>
<Set name="retainDays">90</Set>
<Set name="append">true</Set>
</New>
</Set>
</New>
</Set>
</Configure>
在 sbt 中,运行container:start
,您将看到在myproject/logs下收集的请求日志。当我对此进行测试时,Jetty 不会自行创建日志目录——我必须自己创建。
您可以通过以下方式实时查看请求日志tail
:
tail -f myproject/logs/test-2013_08_23.request.log
有关这方面的完整示例,请参阅 xwp-template 的request-logging分支。