Flask使用日志记录到文件示例
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的支持。
最简单示例:
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 loghandler = logging.FileHandler('flask.log')即创建一个log handler,比较常用的有FileHandler和RotatingHandler,其中FileHandler函数原型为
class logging.FileHandler(filename,mode='a',encoding=None,delay=False)app.logger.addHandler(handler)即将此handler加入到此app中
app.logger.info('info log')即以INFO级别将'info log'写入到日志中。
logging的级别主要有NOTSET、DEBUG、INFO、WARNING、ERROR和CRITICAL,挺容易理解的。
高级一些的示例:
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 loghandler.setLevel(logging.DEBUG)即设置日志记录最低级别为DEBUG,低于DEBUG级别的日志记录会被忽略,不设置setLevel()则默认为NOTSET级别。
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
Flask使用日志记录到文件示例的更多相关文章
- log4j教程 11、日志记录到文件
		要写日志信息到一个文件中,必须使用org.apache.log4j.FileAppender.有以下FileAppender的配置参数: FileAppender配置: 属性 描述 immediate ... 
- log4j日志记录到文件
		要写日志信息到一个文件中,必须使用org.apache.log4j.FileAppender.有以下FileAppender的配置参数: FileAppender配置: 属性 描述 immediate ... 
- python中添加日志记录到文件
		1.实现python日志功能 2.只输出到文件,不输出到控制台 #encoding:utf-8 import logging from common import path_util logging_ ... 
- shell脚本中自定义日志记录到文件
		自定义日志函数和前期变量 # adirname - return absolute dirname of given file adirname() { odir=`pwd`; cd `dirname ... 
- Log4Net异常日志记录在asp.net mvc3.0的应用
		前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual ... 
- Log4Net异常日志记录在asp.net mvc3.0的应用(转载)
		这篇博客写的很好:http://www.cnblogs.com/qianlifeng/archive/2011/04/22/2024856.html 前言 log4net是.Net下一个非常优秀的开源 ... 
- ASP.NET Core 异常处理与日志记录
		1. ASP.NET Core 异常处理与日志记录 1.1. 异常处理 1.1.1. 异常产生的原因及处理 1.1.2. ASP.NET Core中启动开发人员异常页面 1.2. 日志记录 1.2.1 ... 
- python web开发-flask中日志的使用
		Flask使用日志记录的方式: 初始化flask应用实例 在flask中使用logger,需要初始化一个flask的应用 app = Flask(__name__) 2. 调用logger 直接调用l ... 
- .net 温故知新:【9】.NET日志记录 ILogger使用和原理
		日志 日志作为我们程序记录的"黑匣子"是不论什么系统都会使用到的,比如我们经常使用的log4net就是第三方日志记录提供程序.NET 支持使用各种内置和第三方日志记录提供程序的日志 ... 
随机推荐
- Qt 中彩色图像转换为灰度图
			近期在做几个图像处理相关的项目.里面有一个操作就是须要先将彩色图像转换为灰度图像. QImage 有一个convertToFormat方法.最開始一直用这个函数来实现. 可是今天细致看了看,发现这个函 ... 
- mysql  client中使用帮助命令
			当前MySQL服务器的版本号 使用那个命令来参看MySQL的帮助信息 帮助主题供我们查看. 命令为: ? contents 例如查看max方法的使用方法则输入? max即可 这个在navcat中是不支 ... 
- QT 4.8.5 源代码目录调整
			* 前言: 有一个代码比较乱的 QT 源码,我想让它分目录整理一下,特此记录一下. * 在原来的代码里面,里面很多文件都是在主文件里面,这样做的话不好维护以及整理 network 里面所有的文件都是和 ... 
- 使用submit异步提交,阻止表单默认提交
			<form id="addForm" onSubmit="return false;"> <input type="submit&q ... 
- 记一次redis攻击
			服务器挖矿病毒的排查过程 事情起因:朋友的一台阿里云主机,登录特别卡,找我看看 这一看就感觉出问题了,机器特别卡,top看了一眼,cpu几乎是100%运行 但是奇怪的是用top命令完全看不出来哪个进程 ... 
- js实现置顶
			//-----------点击事件--------------- onclick="Topfun()" //-----------js代码--------------- <s ... 
- SQL里3个表的连接查询
			两种:1.select * from 表1,表2,表3 where 表1.字段=表2.字段 and 表1.字段=表3.字段这种效率比较低 结构简单数据量小可以采用2.select * from 表1 ... 
- [转]Oracle dbms_random函数用法快速生成多条测试数据
			Java 随机生成中文姓名,手机号,邮编,住址:http://blog.csdn.net/xiaokui_wingfly/article/details/45913885 Java 批量随机生成身份证 ... 
- ios 开发之 -- UILabel的text竖行显示
			让UILabel的内容竖行显示,我经常用一下两种方式: 第一种:使用换行符 \n label.text = @"请\n竖\n直\n方\n向\n排\n列"; label.number ... 
- 【iOS开发】 AudioSession设置, 切换扬声器和听筒详解-保留其他应用音乐(备忘)
			本文转载至 http://blog.sina.com.cn/s/blog_693de6100101f1g8.html (2013-04-10 17:25:24) 转载▼ 标签: audiosessio ... 
