码迷,mamicode.com
首页 > 其他好文 > 详细

flask-logging模块

时间:2019-08-20 22:13:10      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:logging   from   this   动态   deb   创建文件   debug   cep   pre   

logging模块

技术图片

flask配置日志

技术图片

代码

from logging.handlers import RotatingFileHandler
from flask import Flask, request
import logging
app = Flask(__name__)
app.config['PROPAGATE_EXCEPTIONS'] = False  # 设置是否传递异常 , 如果为True, 则flask运行中的错误会显示到网页中, 如果为False, 则会输出到文件中


class RequestFormatter(logging.Formatter):  # 自定义格式化类
    def format(self, record):
        """每次生成日志时都会调用, 该方法主要用于设置自定义的日志信息
        :param record 日志信息"""
        record.url = request.url  # 获取请求的url
        record.remote_addr = request.remote_addr  # 获取客户端的ip

        return super().format(record)  # 执行父类的默认操作


# flask中提供了两个日志  1> werkzeug 记录web应用运行中出现的错误  2> flask.app  给开发者预留的日志
# flask中的运行错误也会记录到flask.app的日志中
def create_logger():
    """配置flask日志"""
    # 创建flask.app日志器
    flask_logger = logging.getLogger('flask.app')
    # 设置全局级别
    flask_logger.setLevel('DEBUG')

    # 创建控制台处理器
    console_handler = logging.StreamHandler()

    # 给处理器设置输出格式
    console_formatter = logging.Formatter(fmt='%(name)s %(levelname)s %(pathname)s %(lineno)d %(message)s')
    console_handler.setFormatter(console_formatter)

    # 日志器添加处理器
    flask_logger.addHandler(console_handler)

    # 创建文件处理器
    file_handler = RotatingFileHandler(filename='flask.log', maxBytes=100 * 1024 * 1024, backupCount=10)  # 转存文件处理器  当达到限定的文件大小时, 可以将日志转存到其他文件中

    # 给处理器设置输出格式
    file_formatter = RequestFormatter(fmt='[%(asctime)s] %(remote_addr)s requested %(url)s %(name)s %(levelname)s %(pathname)s %(lineno)d %(message)s')
    file_handler.setFormatter(file_formatter)
    # 单独设置文件处理器的日志级别
    file_handler.setLevel('WARN')

    # 日志器添加处理器
    flask_logger.addHandler(file_handler)


@app.route('/')
def index():
    # num = 1 / 0
    app.logger.error('this is a error')
    return "index"


if __name__ == '__main__':
    create_logger()
    app.run(debug=True)

自定义日志信息

技术图片

项目中配置日志

  • 在 家目录中手动创建log文件夹
# 查看最新的?日志
tail flask.log # 默认查看最新的10?行行?日志
tail -n 100 flask.log # 默认查看最新的100?行行?日志
tail -f flask.log # 动态监听?日志

flask-logging模块

标签:logging   from   this   动态   deb   创建文件   debug   cep   pre   

原文地址:https://www.cnblogs.com/oklizz/p/11385847.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!