我们在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实例。 在我们有一个巨大的日志文件之前。
答案 0 :(得分:1)
为了确保只有一个进程写入这些文件,请将日志文件名设置为
'%s/log/some-%s.log' % (PROJECT_ROOT, os.getpid())
并发布你找到的内容。