gpt4 book ai didi

python - TimedRotatingFileHandler 在具有多实例的 Django 中不能正常工作

转载 作者:太空狗 更新时间:2023-10-29 21:29:17 25 4
gpt4 key购买 nike

我使用 TimedRotatingFileHandler 来记录 Django 日志并每天轮换,但是检查日志文件,奇怪的问题是昨天的日志被截断了,今天的日志记录很少,昨天的日志丢失了!

Django 1.4
uwsgi 1.4.9
Python 2.6

我用 uwsgi 启动了 8 个 django 实例。 setting.py是

'handlers': {
'apilog': {
'level': 'INFO',
'class': 'logging.handlers.TimedRotatingFileHandler',
'filename': os.path.join(APILOG, "apilog.log" ),
'when': 'midnight',
'formatter': 'info',
'interval': 1,
'backupCount': 0,
},
},
'loggers': {
'apilog': {
'handlers': ['apilog'],
'level': 'INFO',
'propagate': True
},
}

我错过了什么吗?为什么旧的日志记录丢失了?

最佳答案

您不应同时从多个进程记录到基于文件的处理程序 - 这是不支持的,因为没有可移植操作系统支持它。

要从多个进程登录到单个目标,您可以使用以下方法之一:

  • 使用像 ConcurrentLogHandler 这样的东西
  • 使用 SysLogHandler(或 Windows 上的 NTEventLogHandler)
  • 使用 SocketHandler 将日志发送到单独的进程以写入文件
  • QueueHandlermultiprocessing.Queue 一起使用,如here 所述.

关于python - TimedRotatingFileHandler 在具有多实例的 Django 中不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18840785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com