zoukankan      html  css  js  c++  java
  • flask日志配置

    flask日志设置

    在App/utils/ 新建loggings.py文件

    from flask import request
    import logging
    import logging.handlers
    import os
    
    
    class RequestFormatter(logging.Formatter):
        """
        针对请求信息的日志格式
        """
        def format(self, record):
            record.url = request.url
            record.remote_addr = request.remote_addr
            return super().format(record)
    
    
    def create_logger(app):
        """
        设置日志
        :param app: Flask app对象
        :return:
        """
        logging_file_dir = app.config['LOGGING_FILE_DIR']
        logging_file_max_bytes = app.config['LOGGING_FILE_MAX_BYTES']
        logging_file_backup = app.config['LOGGING_FILE_BACKUP']
        logging_level = app.config['LOGGING_LEVEL']
    
        flask_console_handler = logging.StreamHandler()
        flask_console_handler.setFormatter(logging.Formatter('%(levelname)s %(module)s %(lineno)d %(message)s'))
    
        request_formatter = RequestFormatter('%(levelname)s [%(asctime)s] %(remote_addr)s -> %(url)s '
                                             '%(module)s %(lineno)d: %(message)s')
    
        cida_formatter = RequestFormatter('%(levelname)s [%(asctime)s]  %(module)s %(lineno)d: %(message)s')
    
        flask_file_handler = logging.handlers.RotatingFileHandler(
            filename=os.path.join(logging_file_dir, 'flask.log'),
            maxBytes=logging_file_max_bytes,
            backupCount=logging_file_backup
        )
        flask_file_handler.setFormatter(request_formatter)
    
        log_flask_app = logging.getLogger('flask.app')
        log_flask_app.addHandler(flask_file_handler)
        log_flask_app.setLevel(logging_level)
    
        cida_file_handler = logging.handlers.RotatingFileHandler(
            filename=os.path.join(logging_file_dir, 'xxx_action.log'),
            maxBytes=logging_file_max_bytes,
            backupCount=logging_file_backup
        )
    
        cida_file_handler.setFormatter(cida_formatter)
        log_flask_cida = logging.getLogger('xxx.app')
        log_flask_cida.addHandler(cida_file_handler)
        log_flask_cida.setLevel(logging_level)
    
        if app.debug:
            log_flask_app.addHandler(flask_console_handler)

    在App/__init__.py 的create_app 中新增配置

    def create_app(env):
        # 创建Flask的app对象
        app = Flask(__name__)
    
        ... ...
    
        # 配置日志
        from .utils.loggings import create_logger
        create_logger(app)

    在App/settings.py中新增相关配置

    # 日志
        LOGGING_LEVEL = 'DEBUG'
        LOGGING_FILE_DIR = './logs'
        LOGGING_FILE_MAX_BYTES = 300 * 1024 * 1024
        LOGGING_FILE_BACKUP = 10

    如何在flask中使用???

    在view页面,导入,使用

    from flask import Blueprint
    import logging
    logger = logging.getLogger('cida.app')
    
    blue = Blueprint('blue', __name__)
    
    
    def init_views(app):
        app.register_blueprint(blue)
    
    
    @blue.route('/')
    def index():
        logger.error('Error')
        logger.warning('Warning')
        logger.info("Info")
        return "Index"

    日志如下:

    转载请标明出处:http://www.cnblogs.com/duzhaoqi/
  • 相关阅读:
    Git 分支[转]
    监听键盘的输入事件[转]
    github for windows的初步使用
    限制一个form被同时打开的数量 Limite The Number of Forms Opened at the same time
    android内存检测工具
    面试 9.26 总结
    canvas path paint 的使用(游戏必备)
    android知识点
    android查缺补漏
    AIDL的使用
  • 原文地址:https://www.cnblogs.com/duzhaoqi/p/14408277.html
Copyright © 2011-2022 走看看