在log4php中缓冲日志


Buffering of logs in log4php

log4php是否支持在写入磁盘之前缓冲日志?如果是,是否可以控制缓冲区大小或日志写入磁盘的时间限制(类似于nginx access_log文件中提供的控制)?

答案是否定的。你可以尝试在新创建的appender中实现这种行为,但要注意这可能是一个危险的操作:PHP需要将日志存储在内存中,如果脚本崩溃,它将无法将日志写入磁盘。所以日志记录不能帮助您调试问题,因为所有的跟踪都会丢失。

您应该改为使用syslog appender进行调查。如果你能够影响nginx的配置,那么你似乎是机器上的root用户。Syslog可能能够为您提供所需的一切,Log4php只需在发生任何事情的那一刻发送日志。