Django 应用程序不记录龙卷风守护进程 uwsgi

Django application not logging tornado daemon uwsgi

我正在尝试记录我的 Django 应用程序。这工作正常(我在日志文件中看到所有其他日志)除非我尝试 记录我的 uWSGI 守护进程。我刚开始使用守护程序,它会以不同的方式记录是什么原因?

我在 uwsgi.yaml 中使用:

env: DJANGO_SETTINGS_MODULE=application.settings
module: application.wsgi
log-master: True
log-syslog: uwsgi
attach-daemon: /opt/application/bin/tornading

这是我在设置模块中的登录:

LOGGING = {
    'handlers': {
        'logfile': {
            'level':'DEBUG',
            'class':'logging.handlers.RotatingFileHandler',
            'filename': '/var/log/application.log',
            'maxBytes': 1 * 1024 * 1024,
            'backupCount': 2,
            'formatter': 'standard',
        },
    },
    'loggers': {
        'application': {
            'handlers': ['logfile'],
            'level': 'DEBUG',
            'propagate': True,
        },
    }
}

tornading.py 启动一个 IOloop 实例和一个龙卷风消费者:

import logging
import settings
LOGGER = logging.getLogger(__name__)

def main():
    app = tornado.web.Application(BroadcastRouter.urls)
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(port=settings.TORNADO_PORT, address=settings.TORNADO_HOST)
    ioloop = tornado.ioloop.IOLoop.instance()
    consumer = communication.TornadoConsumer(ioloop, BroadcastConnection.on_rabbit_message)
    consumer.connect()

    LOGGER.debug('Hello world')

    ioloop.start()

if __name__ == "__main__":
    main()

我也试过 LOGGER = logging.getLogger('application') 但仍然没有来自 tornading.py

的日志记录

关于为什么这不起作用的任何想法?

当你使用 Django 时——你不需要配置记录器,因为 Django 会在加载时自行生成它。

当您使用 Tornado 时,没有自动配置记录器。尝试手动配置。

import logging.config

logging.config.dictConfig(settings.LOGGING)

也供以后阅读:15.8. logging.config — Logging configuration