1. 创建logging.py文件按:common/utils/logging.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('[%(asctime)s] %(remote_addr)s requested %(url)s\n'
'%(levelname)s in %(module)s %(lineno)d: %(message)s')
# #3 flask_file_handler日志处理器 向那个文件写,策略是什么?
flask_file_handler=logging.handlers.RotatingFileHandler(
filename=os.path.join(logging_file_dir,'flask.log'),
maxBytes=logging_file_max_bytes,
backupCount=logging_file_backup
)
# 4 flask_file_handler日志处理器 向文件写的格式是什么?
flask_file_handler.setFormatter(request_formatter)
#1 获取日志器
log_flask_app=logging.getLogger('flask.app')
# 2.增加处理器
log_flask_app.addHandler(flask_file_handler)
log_flask_app.setLevel(logging_level)
2. 对创建flask app的工厂函数 增加配置日志:
/__init__.py
# 配置日志
from utils.logging import create_logger
create_logger(app)
运行测试:
编写好运行环境后,启动
错误信息:表示在服务器中没有找到文件夹,需要我们手动创建存放日志的文件夹

创建日志文件夹:

再次运行:成功

查看是否在指定路径下创建了日志器:flask.log

版权声明:本文为weixin_41672684原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。