TimeDrotingFileHandler在使用多实例的Django中无法正常工作

2024-06-17 13:42:30 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Django 1.4
uwsgi 1.4.9
Python 2.6

我用uwsgi启动8个django实例。这个设置.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  
     },
  }

我错过什么了吗?为什么旧的伐木丢失了?在


Tags: 文件django实例pyinfologginghandlers记录
1条回答
网友
1楼 · 发布于 2024-06-17 13:42:30

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

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

  • 使用类似^{}
  • 使用SysLogHandler(或在Windows上使用NTEventLogHandler
  • 使用SocketHandler将日志发送到单独的进程以写入文件
  • QueueHandlermultiprocessing.Queue一起使用,如here所示。在

相关问题 更多 >