uwsgi separate stdout/stderr logging via logfile

Согласно документации в uwsgi есть встроенная возможность логирования запросов и ошибок в отдельные файлы. Для этого достаточного прописать

  req-logger = file:/path/to/log/access.log
  logger     = file:/path/to/log/error.log

Однако при указаннии привиденных директив уверенно возникала ошибка:

Thu May 15 16:56:57 2014 - unable to find logger file

при подключении syslog логирования ошибка менялась на:

Thu May 15 16:58:21 2014 - unable to find logger syslog

В интернете на этот счет оказался молчок. То ли этот функционал никто не используется, то ли он появился сравнительно недавно. На деле ларчик просто открывался достаточно добавить строчку plugins, которая указывает какие logger(ы) необходимо подключить. Таким образом итоговый ini-файл в моем случае выглядел следующим образом

[uwsgi]
  pkgdir     = /path/to/app
  socket     = 127.0.0.1:8080
  workers    = 4
  plugins    = python,logfile
  virtualenv = %(pkgdir)/env
  chdir      = %(pkgdir)/src
  env        = DJANGO_SETTINGS_MODULE=app.settings
  module     = django.core.handlers.wsgi:WSGIHandler()
  req-logger = file:/var/log/uwsgi/logger/access.log
  logger     = file:/var/log/uwsgi/logger/error.log

Важно! Директория /var/log/uwsgi/logger/ должна быть доступная для записи пользователю, от которого запускается uwsgi-приложение. По умолчанию, это пользователь www-data для debian/ubuntu.

One thought on “uwsgi separate stdout/stderr logging via logfile

Добавить комментарий

Ваш e-mail не будет опубликован.