Django的。运行多个实例的日志轮换

时间:2012-04-25 11:53:26

标签: python django logging

我们在django日志轮换方面遇到了麻烦。

日志处理程序设置:

'handlers': {
    'null': {
        'level':'DEBUG',
        'class':'django.utils.log.NullHandler',
    },
    'some':{
        'formatter': 'simple',
        'filename':'%s/log/some.log' % (PROJECT_ROOT, ),
        'level':'DEBUG',
        'class':'logging.handlers.RotatingFileHandler',
        'maxBytes': 1024*1024*5, # 5 MB
        'backupCount': 5,
    }
}

日志中的结果:

drwxr-xr-x  2 webserver webserver      4096 Apr 25 11:43 .
drwxr-xr-x 29 webserver webserver      4096 Apr 24 20:58 ..
-rw-r--r--  1 webserver webserver        35 Apr 25 03:58 some.log
-rw-r--r--  1 webserver webserver        30 Apr 25 03:58 some.log.1
-rw-r--r--  1 webserver webserver        30 Apr 25 03:57 some.log.2
-rw-r--r--  1 webserver webserver        35 Apr 25 03:57 some.log.3
-rw-r--r--  1 webserver webserver        35 Apr 25 03:05 some.log.4
-rw-r--r--  1 webserver webserver       631 Apr 25 03:05 some.log.5

只有一条记录在日志中,并在日志旋转后。为什么处理程序如此快速地旋转日志在哪里挖? 我们在服务器上运行了多个django实例。 在我们有一个巨大的日志文件之前。

1 个答案:

答案 0 :(得分:1)

为了确保只有一个进程写入这些文件,请将日志文件名设置为

'%s/log/some-%s.log' % (PROJECT_ROOT, os.getpid())

并发布你找到的内容。