如何强制 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
>).
我正在考虑以下两种可能的方法可以解决我的问题,但可能还有另一种方法:
- 在不停止 Apache(或 WAMP 中的任何其他组件)的情况下重新加载整个 httpd.conf。
- 仅强制更新
ErrorLog
和CustomLog
行(就直接在cmd,忽略 httpd.conf 文件)。
详细信息:
- WAMP5 1.6.6(升级不是解决方案)
- Apache 2.0.59(大约 9 年前发布)
- 我无法重新启动服务器,因为用户需要不间断地访问应用程序。
最佳答案
要正确回答这个问题,您需要告诉我您的 apache 配置中正在使用哪个日志记录 api。
如果使用 log4j,请查看以下 URL Log4j Automatic Configuration
您将在此处找到有关在 Log4j 配置文件中设置 monitorInterval 属性的信息。将此属性设置为非零值(> 5)将导致下次评估和/或记录日志事件时检查该文件,并且自上次检查以来已经过了monitorInterval(以秒为单位指定)
关于apache - 强制 Apache 更新日志文件路径,无需在 WAMP 中重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35087392/