Flask 自定义配置文件

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值