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

flask日志配置

时间:2021-02-19 12:57:16      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:logs   sel   remote   nbsp   src   ror   创建   creat   xxx   

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"

 

日志如下:

技术图片

 

flask日志配置

标签:logs   sel   remote   nbsp   src   ror   创建   creat   xxx   

原文地址:https://www.cnblogs.com/duzhaoqi/p/14408277.html

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