如何强制Apache ( WAMP 的一部分)写 新日志 新日志文件,无需重新启动服务器?
在 Apache2 \ conf \ httpd.conf 中,我更新了ErrorLog
和CustomLog
指令的路径。
之前:
ErrorLog ../logs/a.log
...
CustomLog ../logs/b.log common
后:
ErrorLog ../logs/a2.log
...
CustomLog ../logs/b2.log common
LogLevel
和LogFormat
指令未更改。
我更改后,我设法(我不知道 - 意外或自动完成,但我确定我没有明确重启服务器)以获取新日志新文件。也许这并没有立即发生,因为我在20分钟后观察到了这一点(创建了新的日志文件并且新日志发送到了它们,而不是旧日志)。这就是我想要实现的目标!
但后来又改变了路径:
../logs/a2.log
=> ../logs/a3.log
../logs/b2.log
=> ../logs/b3.log
但是日志没有进入新路径(它们仍然写入../logs/a2.log
和../logs/b2.log
)。
我正在考虑以下2种可能的方法,这可以解决我的问题,但可能还有另一种方法:
ErrorLog
和 CustomLog
行(就直接在cmd中执行某些命令而忽略httpd而言)。 conf文件)。详情:
答案 0 :(得分:1)
在Windows上,apache.exe -k restart
略显优雅 - 飞行中的请求需要30秒才能完成。
除此之外,您可能会因为安全地重命名正在Windows上写入的文件而运气不好。出于这个原因,您永远不应该运行单个HTTP服务器。你无法进行任何日常维护。
答案 1 :(得分:1)
要正确回答这个问题,您需要告诉我您的apache配置中使用了哪个日志记录api。
如果使用log4j,请参阅以下网址Log4j Automatic Configuration
您可以在此处找到有关在Log4j配置文件中设置monitorInterval属性的信息。将此属性设置为非零值(> 5)将导致在下次评估和/或记录日志事件时检查文件,并且自上次检查后已经过了以秒为单位的monitorInterval