通过管道记录Python Web应用?(关注性能)

0 投票
1 回答
544 浏览
提问于 2025-04-15 16:38

我正在用Python和web.py写一个网页应用,我想实现一个自己的日志系统。我希望能详细记录每个请求的信息(静态文件由网络服务器处理)。

现在我在考虑把日志写入一个管道。管道的另一端应该是cronolog。

我最担心的是,这样的做法性能会不会好?把日志通过管道写入和正常处理请求(比如少于5次数据库查询,以及从模板生成页面)相比,消耗的时间和资源怎么样?

或者有没有其他更好的方法?我不想在Python中直接写日志文件,因为fastcgi会启动很多进程。

1 个回答

1

管道是一种非常快速的输入输出机制。它其实就是一个共享的缓冲区,仅此而已。如果管道的接收端完全忙不过来,可能会出现问题。但现在你没有证据表明这一点。

如果你通过FastCGI启动了十几个进程,每个进程都可以有自己独立的日志文件。这是最理想的情况:使用Python的日志功能,让每个进程都有一个独特的日志文件。

如果你偶尔需要查看所有的日志文件,可以把它们合在一起进行分析。

撰写回答