Tomcat不会记录,直到文件被触及"

时间:2016-12-23 07:47:50

标签: tomcat logging windows-explorer

这里真的很奇怪:我们的tomcat访问日志文件在Windows(Server 2012)资源管理器中显示0字节和过时的修改日期。它显然是空的,WinScp同意并且没有复制它 - 大概是因为它显然没有改变或显然是空的。我们有点"知道"该文件正在被修改。

但是,只要我们在Notepad ++中打开日志文件,它就会更新"虽然时间戳保持不变,但我们在文件中看到731KB和数据。即使我们只是TYPE(即cat)文件,我们也会更新大小。究竟是什么原因?这只是一个探险家的问题吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

  

缓冲
  标记以确定是否将缓冲日志记录。如果设置为false,则将在每次请求后写入访问日志记录。默认值:true

因此,如果您想立即查看该文件的更改,请将buffered = "false"添加到访问日志阀的属性中。

buffered设置为true(默认值)时,JVM将仅在缓冲区达到其指定容量时才开始刷新内容,请注意,刷新不保证系统随后会立即将数据写入物理设备,尽管通常情况如此;此外,日志文件实际上永远不会关闭,valve只是不断刷新新内容。

这可能解释了为什么修改日期完好无损。

参考:http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access_Log_Valve