flask 添加日志

def add_error_handler(app):
    for exception in default_exceptions:
        app.register_error_handler(exception, error_handler)
    app.register_error_handler(Exception, error_handler)

def error_handler(error):
    description = error.get_description(request.environ)         if hasattr(error, ‘get_description‘) else None

    exc_type, exc_value, exc_traceback = sys.exc_info()
    traceback.print_exception(exc_type, exc_value, exc_traceback)

    current_app.logger.error(
        """
        Request:        {method} {path}
        IP:             {ip}
        User:           {user}
        Agent:          {agent_platform} | {agent_browser} {agent_browser_version}
        Raw Agent:      {agent}
        Description:    {description}
        """.format(
            method=request.method,
            path=request.path,
            ip=request.remote_addr,
            agent_platform=request.user_agent.platform,
            agent_browser=request.user_agent.browser,
            agent_browser_version=request.user_agent.version,
            agent=request.user_agent.string,
            user=g.user if hasattr(g, ‘user‘) else None,
            description=description,
        ), exc_info=exc_traceback
    )

    if isinstance(error, HTTPException):
        code = error.code
        if code == 404:
            return make_response(jsonify({‘code‘: 404, ‘data‘: {}, ‘msg‘: ‘page not found‘}), code)
        else:
            """其他HTTP异常处理暂未定义"""
            pass
    else:
        current_app.logger.error(‘Internal Server Error‘)
        return make_response(jsonify({‘code‘: 500, ‘data‘: {}, ‘msg‘: ‘Internal Server Error‘}))
app = Flask(__name__)
add_error_handler(app)

  

时间: 2024-11-13 18:14:48

flask 添加日志的相关文章

Flask--(项目准备)--添加日志

日志:记录程序运行的状态,在manage.py同级目录下创建logs文件夹 定义日志文件: import logging from logging.handlers import RotatingFileHandler from flask import Flask # 可以用来指定 session 保存的位置 from flask.ext.session import Session from flask.ext.sqlalchemy import SQLAlchemy from flask.

(译)Windsor入门教程---第五部分 添加日志功能

介绍 现在我们已经有了基础的框架了,是时候添加内容了,那么我们首先应该考虑的就是在应用程序中添加日志功能.我们会使用Windsor来配置,在这一部分,你将学习Windsor之外的其他功能. Logging Facility 在上一部分说过,Windsor有很多自带的可选的功能组件,他们扩展了Windsor的即用性.在这一部分,我们将在程序中添加日志功能. Logging Facility提供了一些常用的日志框架比如Log4net.Nlog,以及mvc内置的日志框架Trace.Logging Fa

ASP.NET Core 添加日志NLog

1.在Nuget上搜索 NLog.Extensions.Logging 安装最新版 2.添加日志配置文件,在项目指定目录下添加配置文件nlog.config,内容添加如下: <?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.

ThinkPHP执行调用存储过程添加日志

本文出至:新太潮流网络博客 //PHP代码部分 /** * [LogAdd 操作日志] * @param [string] $userid [用户的ID] * @param [string] $type [类型] * @param [string] $controller_name [当前控制器的中文名称] * @param [string] $function_name [当前方法的中文名称] */ function LogAdd($userid,$type,$controller_name,

java中添加日志

在简单的项目中添加日志: 首先导入2个jar包 commons-logging-1.1.1.jar log4j-1.2.15.jar 然后在项目的src目录下创建log的配置文件 log4j.properties内容如下: ## 定义 DEBUG 优先级, R 为日志输出目的的 #log4j.rootLogger= DEBUG,R ## 设置日志输出类型 , 为文件类型 #log4j.appender.R= org.apache.log4j.FileAppender ## 设置日志文件名 log

使用动态代理解决方法调用前后添加日志信息

一般情况,在每个调用的方法中直接添加日志信息,存在如下问题: 1.代码混乱:越来越多的非业务需求加入(如日志和验证等)后,原有的业务方法急剧膨胀,每个方法在处理核心逻辑的同时还必须兼顾其他多个关注点: 2.代码分散:以日志需求为例,只是为了满足这个单一的需求,就不得不在多个模块里多次重复相同的日志代码,如果日志需求发生变化,必须修改所有的模块. 针对以上问题,使用动态代理带解决. 代理设计模式的原理:使用一个代理将对象包装起来,然后用该代理取代原始对象.任何原始对象的调用都要通过代理.代理对象决

asp.net 页面中引用log4net,添加日志操作

最近在一个项目中使用到了log4net.dll用于记录操作日志,从网上找的大部分资料都是在每个需要输出日志的类中都先声明一下,然后再调用它的输出函数,如debug,error等等 如果是一个小的项目,这样比较简单,使用起来很容易,但是如果项目涉及多个解决方案,比如我现在的贸易系统项目,每天的流水会达到几个亿,会涉及多个操作类型,因此就需要有详细的日志记录信息, 如果还用以前的方式会比较麻烦,因此就按照项目需要,单独创建一个dll用于实现记录日志. 1.下载一个log4net.dll 2.创建一个

python web开发-flask中日志的使用

Flask使用日志记录的方式: 1. 初始化flask应用实例 在flask中使用logger,需要初始化一个flask的应用 app = Flask(__name__) 2. 调用logger 直接调用logger方法 app.logger.info("my first logging") 这里记录的是info级别的日志 3. 查看结果 运行结果如下: INFO in Code [D:/xxxxx/flask/Code.py:20]: my first logging 默认情况下,f

Python+request 分模块存放接口,多接口共用参数URL、headers的抽离,添加日志打印等《三》

主要介绍内容如下: 1.分模块存放接口 2.多接口共用参数URL.headers的抽离为配置文件 3.添加日志打印 4.一个py文件运行所有所测的接口 如上介绍内容的作用: 1.分模块存放接口:方便多人协作,对模块接口的分开存放,方便后期新增模块接口的录入,也方便接口出现报错后,定位模块 2.多接口共用参数URL.headers的抽离为配置文件: (1)URL:单独进行配置文件中的修改,主要是方便后期接口域名出现变化,方便更改,示例,本次URL前缀为:https://127.0.0.1,下次开发