python - Flask使用uWSGI后logging模块功能失效
怪我咯
怪我咯 2017-04-17 13:22:43
0
1
1200

症状:使用python直接运行时可以正常记入日志,使用Nginx+uWSGI部署后无日志生成。

背景介绍:

定义了一个initlogger函数对logger做了一些初始化工作。
该函数在myapi.py(flask主文件)中的name中进行启动初始化。

if __name__ == '__main__': initlogger() app.run(host='0.0.0.0', port=11120, debug=True)

发现没有生成日志后,想起应该在uWSGI的启动文件中进行初始化。
PS:uwsgi --socket 127.0.0.1:11121 -w WSGI:app
即在WSGI.py文件中的name中进行启动初始化。

from myapi import app import myapi if __name__ == "__main__": myapi.initlogger() app.run()

依然没有日志生成,不知道怎么处理。本人为python新手,请大家指导。

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆 (1)
PHPzhong

后面自己搞定了,不过具体原理还不是很理解,希望有了解的人可以补充一下,谢谢!

直接把logger初始化的语句放在主文件myapi.py中,而不是在ifname== "main"中调用初始化。

from flask import Flask import logging from logging.handlers import TimedRotatingFileHandler app = Flask(__name__) formatter = logging.Formatter('%(name)-12s %(asctime)s level-%(levelname)-8s thread-%(thread)-8d %(message)s') # 每行日志的前缀设置 log = logging.getLogger('api') fileTimeHandler = TimedRotatingFileHandler(cf.LOG_API_PATH + 'api_', "S", 1, 10) fileTimeHandler.suffix = "%Y%m%d.log" #设置 切分后日志文件名的时间格式 默认 filename+"." + suffix 如果需要更改需要改logging 源码 fileTimeHandler.setFormatter(formatter) logging.basicConfig(level = logging.INFO) fileTimeHandler.setFormatter(formatter) log.addHandler(fileTimeHandler)
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!