jetty access.log不再记录

时间:2012-07-17 16:51:28

标签: jetty

我已经在生产中启用了Jetty Access Logs并且事情进展顺利,直到今天。今天,访问日志似乎不再采用数据,即使服务本身正在运行而没有发生事故。我怀疑我对“retainDays”属性有些不了解。以下是设置日志记录的etc / jetty.xml的摘录......

<!-- Built-in Jetty AccessLog log -->
<Ref id="AccessLog">
  <Set name="requestLog">
    <New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
      <Arg><SystemProperty name="jetty.logs" default="/data/logs"/>/dm-app1_access.log</Arg>
      <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>

为什么当这个孩子达到retainDays值时,记录似乎停止了?我希望它只是截断并继续登录到/data/logs/dm-app1_access.log。

1 个答案:

答案 0 :(得分:1)

日志记录已停止,因为我的文件名不包含“yyyy_mm_dd”占位符。发现配置完成的日志文件命名格式类似于我们的回滚RollingFileAppenders的方式就像...

<!-- 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">3</Set>
      <Set name="append">true</Set>
      <Set name="extended">false</Set>
      <Set name="logLatency">true</Set>
      <Set name="LogTimeZone">GMT</Set>
    </New>
  </Set>
</Ref>

...这会创建像logs / access.20120718.log这样的访问日志文件。当我发现“filename”属性中的“yyyy_mm_dd”只是“filenameDateFormat”属性中包含的实际SimpleDateFormat的占位符时,出现了很大的学习时刻。