我最近将一个 tomcat 应用程序从 Windows Server 2003 上的 tomcat 5 移至 Windows Server 2008 下的 tomcat 6。现在写入日志文件时会延迟。这适用于 stdout 和访问日志。例如,您可以转到某个页面,然后打开访问日志,但几分钟内不会有任何有关该访问的记录。这很麻烦,因为如果报告了问题,我们不想等到日志文件写出。我猜 tomcat 或 Windows Server 一定在缓冲日志。有没有什么方法可以禁用此功能。
我们没有修改logging.properties文件,它不包含任何bufferSize条目。
答案1
默认情况下,tomcat 中未启用缓冲,但您的系统上可能启用了缓冲。
打开$CATALINA_BASE/conf/logging.properties
并找到包含此字符串的行bufferSize
(例如:4admin.org.apache.juli.FileHandler.bufferSize = 16384
注释掉该行或将其删除),延迟写入就会消失。