通过管道记录Python Web应用?(关注性能)
我正在用Python和web.py写一个网页应用,我想实现一个自己的日志系统。我希望能详细记录每个请求的信息(静态文件由网络服务器处理)。
现在我在考虑把日志写入一个管道。管道的另一端应该是cronolog。
我最担心的是,这样的做法性能会不会好?把日志通过管道写入和正常处理请求(比如少于5次数据库查询,以及从模板生成页面)相比,消耗的时间和资源怎么样?
或者有没有其他更好的方法?我不想在Python中直接写日志文件,因为fastcgi会启动很多进程。
1 个回答
1
管道是一种非常快速的输入输出机制。它其实就是一个共享的缓冲区,仅此而已。如果管道的接收端完全忙不过来,可能会出现问题。但现在你没有证据表明这一点。
如果你通过FastCGI启动了十几个进程,每个进程都可以有自己独立的日志文件。这是最理想的情况:使用Python的日志功能,让每个进程都有一个独特的日志文件。
如果你偶尔需要查看所有的日志文件,可以把它们合在一起进行分析。