from flask import request, logging
from logging.handlers import RotatingFileHandler
import logging, os, time
# Wrok_Mode_configuration
ENV = os.getenv('FLASK_ENV')
DEBUG = True
# 设置是否传递异常 , 如果为True,则flask运行中的错误会显示到网页中, 如果为False, 则会输出到文件中
PROPAGATE_EXCEPTIONS = False
# flask_log_configuration
class RequestFormatter(logging.Formatter):
def format(self, record):
record.url = request.url
record.remote_addr = request.remote_addr
return super().format(record)
def Create_log():
# 创建flask日志器
flask_log = logging.getLogger('flask_demo')
# 配置日志器全局日志级别
flask_log.setLevel(DEBUG)
# 创建日志处理器
flask_handler_01 = logging.StreamHandler()
# flask_handler_02 = logging.FileHandler()
# 配置日志器日志输出格式
log_format = '[%(asctime)s] %(levelname)s %(pathname)s-%(process)d-%(lineno)d %(message)s'
flask_handler_01.setFormatter(fmt=logging.Formatter(fmt=log_format))
# 为flask_log日志器添加日志处理器flask_handler
flask_log.addHandler(flask_handler_01)
# 创建日志文件处理器
rq = time.strftime('%Y%m%d%H%M'.format(time.localtime(time.time()))) # 获取当前时间转换为字符器作为日志文件名
file_path = os.getcwd() + '/logs/' # 获取当前App的文件路径作为日志存放的位置
file_name = file_path + rq + '.log'
file_handler = RotatingFileHandler(filename=file_name, maxBytes=100 * 1024 * 1024, backupCount=10, encoding='UTF-8',
delay=False, mode='a')
# 设置日志文件的输出格式
log_file_format = '[%(asctime)s] %(remote_addr)s requestd %(url)s %(levelname)s %(name)s %(process)d %(pathname)s %(lineno)d %(message)s'
file_handler.setFormatter(fmt=RequestFormatter(fmt=log_file_format))
# 设置日志文件的输出级别
file_handler.setLevel(logging.DEBUG)
# 将日志文件处理器添加到日志器
flask_log.addHandler(file_handler)
Flask 自定义配置文件
最新推荐文章于 2023-07-28 22:51:36 发布