这篇文章主要介绍了在Python中使用全局日志时需要注意的问题, 作者由uliweb使用时遇到的问题分析全局日志出现错误时的解决方法,需要的朋友可以参考下
在使用 uliweb 开发 soap webservice 后,启动 uliweb 时,werkzeug 的日志莫名其妙丢失了。
正常的日志:
[INFO] * Running on http://localhost:8000/
[INFO] * Restarting with reloader
[INFO] * Loading DebuggedApplication…
异常的日志:
[INFO] * Loading DebuggedApplication…
事实上, werkzeug 相关 INFO 及其以下级别的日志全部都看不到了,这太诡异了,于是果断提交了issue
而且我创建一个新的项目和 app 后,并没有日志丢失的问题,于是我怀疑是因为我从 uliweb 0.1.3 升级到 0.1.4 导致的,我的项目是使用 0.1.3 创建的,之前也没有注意过日志的问题,但是得到 limodou 的答复后,我否定了这一点
- uliweb在创建项目时不会生成象 Django 一样的 manage.py 之类的东西,就是 settings.py 等一些配置文件和启动文件, 都是和版本无关的。
仔细想想,我的项目和新创建的项目的区别在于 settings.ini 丰富了一些,然后用了 pysimplelib,好吧,从源码追踪吧。
我看了 uliweb 内置的 zerkzeug 代码,创建日志这里很明确
uliweb/lib/werkzeug/serving.py
113 _logger.setLevel(logging.INFO)
114 handler = logging.StreamHandler()
115 _logger.addHandler(handler)[code]
当全局 logging.root 中已经定义了 Handler 或者 werkzeug 没有定义日志级别,werkzeug 会将其 logger 的日志级别 设置为 info,而打印 werkzeug 日志的地方,恰巧用了 info 级别
[code][INFO] * Running on http://localhost:8000/
[INFO] * Restarti来源gao@!dai!ma.com搞$$代^@码网ng with reloader
以上就是在Python中使用全局日志时需要注意的问题的详细内容,更多请关注gaodaima搞代码网其它相关文章!