我正在运行一个基于 wsgi 的应用程序,有并发用户访问它。对于我的日志需求,我尝试了 logrotate,但发现 logrotate 对 Python 应用程序不太友好,所以我尝试使用 RotatingFileHandler,更糟糕的是,我发现我的日志全部被切碎,部分日志丢失了!
我正在考虑 ConcurrentRotatingFileHandler,我的问题是,有没有人经历过同样的事情,更好的是,你是否有任何针对 Python wsgi、并发访问应用程序的经过实战测试的解决方案?
答案1
logrotate 有什么问题?您可以看看 chronolog。它主要用于网络日志。
答案2
如果您使用较新版本的 python,则日志模块支持轮换日志。
# Add the log message handler to the logger
handler = logging.handlers.RotatingFileHandler(
LOG_FILENAME, maxBytes=20, backupCount=5)
看着http://docs.python.org/library/logging.html
我假设您使用内置的 Web 服务器作为 CherryPy。