概述
https://www.polarxiong.com/archives/Flask%E4%BD%BF%E7%94%A8%E6%97%A5%E5%BF%97%E8%AE%B0%E5%BD%95%E5%88%B0%E6%96%87%E4%BB%B6%E7%A4%BA%E4%BE%8B.html
flask的日志记录需要用到python标准库logging的支持。
最简单示例:
Python
from flask import Flask
import logging
app = Flask(__name__) @app.route('/') def root(): app.logger.info('info log') app.logger.warning('warning log') return 'hello' if __name__ == '__main__': app.debug = True handler = logging.FileHandler('flask.log') app.logger.addHandler(handler) app.run()
记录到flask.log
中内容为:
info log
warning log
Python
handler = logging.FileHandler('flask.log')
即创建一个log handler,比较常用的有FileHandler
和RotatingHandler
,其中FileHandler
函数原型为
Python
class logging.FileHandler(filename,mode='a',encoding=None,delay=False)
Python
app.logger.addHandler(handler)
即将此handler
加入到此app中
Python
app.logger.info('info log')
即以INFO
级别将'info log'
写入到日志中。
logging
的级别主要有NOTSET
、DEBUG
、INFO
、WARNING
、ERROR
和CRITICAL
,挺容易理解的。
高级一些的示例:
Python
from flask import Flask
import logging
app = Flask(__name__) @app.route('/') def root(): app.logger.info('info log') app.logger.warning('warning log') return 'hello' if __name__ == '__main__': app.debug = True handler = logging.FileHandler('flask.log', encoding='UTF-8') handler.setLevel(logging.DEBUG) logging_format = logging.Formatter( '%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s - %(lineno)s - %(message)s') handler.setFormatter(logging_format) app.logger.addHandler(handler) app.run()
记录到flask.log
中内容为:
2015-08-29 10:12:48,004 - INFO - test.py - root - 9 - info log
2015-08-29 10:12:48,004 - WARNING - test.py - root - 10 - warning log
Python
handler.setLevel(logging.DEBUG)
即设置日志记录最低级别为DEBUG
,低于DEBUG
级别的日志记录会被忽略,不设置setLevel()
则默认为NOTSET
级别。
Python
logging_format = logging.Formatter(
'%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s - %(lineno)s - %(message)s') handler.setFormatter(logging_format)
这两句用来控制日志记录格式,效果如上述记录内容;在Python参考文档中有更详细的说明,这里简单介绍一下:
%(asctime)s
即日志记录时间,精确到毫秒%(levelname)s
即此条日志级别%(filename)s
即触发日志记录的python文件名%(funcName)s
即触发日志记录的函数名%(lineno)s
即触发日志记录代码的行号%(message)s
这项即调用如app.logger.info('info log')中的参数,即message
注意:此示例来自Python 3.4.3 和Flask 0.10.1
转载于:https://www.cnblogs.com/fengff/p/9512045.html
最后
以上就是重要曲奇为你收集整理的Flask使用日志记录到文件示例的全部内容,希望文章能够帮你解决Flask使用日志记录到文件示例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复