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/