烧瓶 + uwsgi:找不到记录器的处理程序



我正在使用uwsgi和nginx运行python flask应用程序。我在记录应用程序模块时遇到问题。如果我单独运行烧瓶应用程序,我可以看到日志格式正确,但在 uwsgi 中,我看到"找不到记录器的处理程序......"并且日志丢失。打印显示正常。有人可以帮助我做错什么吗?

谢谢

我运行 uwsgi 作为

/usr/local/bin/uwsgi --ini /root/uwsgi.ini

# cat /root/uwsgi.ini
[uwsgi]
base=/root/mainapp
app = mainapp
module = %(app)
pythonpath = %(base)
socket = /tmp/mainapp.sock
chmod-socket = 666
callable = app
logto = /var/log/mainapp/app.log
paste-logger = %p

[formatters]
keys: detailed
[handlers]
keys: console
[loggers]
keys: root, module1, module2, module3
[formatter_detailed]
format: %(asctime)s %(name)s:%(levelname)s %(module)s:%(lineno)d:  %(message)s
[handler_console]
class: StreamHandler
args: []
formatter: detailed
[logger_root]
level: DEBUG
handlers: 
[logger_module1]
level: DEBUG
qualname: module1
handlers: console
[logger_module2]
level: DEBUG
qualname: module2
handlers: console
[logger_module3]
level: DEBUG
qualname: module3
handlers: console

在模块中,我调用

import logging
log = logging.getLogger('module1')
log.info('hello world')

您是否将 Flask 配置为使用记录器?在我的头顶上,这样的事情应该可以工作

app.config['LOG_FILE'] = 'application.log'
# Configure logger.
if not app.debug:
    import logging
    from logging import FileHandler
    file_handler = FileHandler(app.config['LOG_FILE'])
    file_handler.setLevel(logging.WARNING)
    app.logger.addHandler(file_handler)

看起来我必须先实例化 Flask 的 app.logger 才能做任何事情......这成功了...在 app.logger 上设置 addhandler 和

import logging
import logging.config
shandler = logging.StreamHandler()
shandler.setLevel(logging.DEBUG)
app.logger.addHandler(shandler)
logging.config.fileConfig('logging.conf')

最新更新