Django:为生产中的网站设置高效的日志系统

Django: Setup an efficient logging system for a website in production

好的,开发阶段已经结束,现在我的网站已经上线了。但是,我还没有设置日志记录。我的网站位于 /var/www/html 目录。理想情况下,我想让 Django 登录 /var/log/django,但这需要权限。

  1. 将 Django 日志保存在 /var/log/ 中是标准做法吗?
  2. 我需要什么类型的权限才能将日志存储在 /var/log。
  3. 我只想要最近 2 天和今天的日志,其余的可以自动删除。

设置:RHEL7、Apache2.4、python3.5、Django 1.10、mod_wsgi、mySQL

  1. 不,这不标准。 将以下语句添加到 settings.py 并根据需要修改日志文件路径:

     LOGGING = {
         'version': 1,
         'disable_existing_loggers': False,
         'handlers': {
             'file': {
                 'level': 'DEBUG',
                 'class': 'logging.FileHandler',
                 'filename': '/path/to/django/debug.log',
             },
         },
         'loggers': {
             'django': {
                 'handlers': ['file'],
                 'level': 'DEBUG',
                 'propagate': True,
             },
         },
     }
    
  2. 参考这个为日志文件设置合适的权限:Permission Denied when writing log file

  3. 您将不得不使用 logrotate otherwise make use of kafka 服务器来维护日志。