falsk 配置日志 +跨域

参照博客https://www.cnblogs.com/meloncodezhang/p/11922804.html

1 这是我的目录

1 config /config.py

import logging


class Config(object):
    # 设置日志等级
    LOG_LEVEL = logging.DEBUG


class DevelopConfig(Config):
    """开发环境下的配置"""
    DEBUG = True


class ProductConfig(Config):
    """生成环境下的配置"""
    DEBUG = False
    LOG_LEVEL = logging.WARNING


class TestConfig(Config):
    """测试环境下的配置"""
    DEBUG = True
    TESTING = True


config = {
    "development": DevelopConfig,
    "production": ProductConfig,
    "testing": TestConfig,
}

2 log/log.py

import logging
from logging.handlers import RotatingFileHandler
from flask import Flask
from config.config import config


def setup_log(config_name):
    """

    :param config_name: 传入日志等级
    :return:
    """
    # 设置日志的的登记
    logging.basicConfig(level=config[config_name].LOG_LEVEL)
    # 创建日志记录器,设置日志的保存路径和每个日志的大小和日志的总大小
    file_log_handler = RotatingFileHandler("log/log.log", maxBytes=1024*1024*100,backupCount=100, encoding='utf-8')
    # 创建日志记录格式,日志等级,输出日志的文件名 行数 日志信息
    formatter = logging.Formatter("%(levelname)s %(filename)s: %(lineno)d %(message)s")
    # 为日志记录器设置记录格式
    file_log_handler.setFormatter(formatter)
    # 为全局的日志工具对象(flaks app使用的)加载日志记录器
    logging.getLogger().addHandler(file_log_handler)


def create_app(config_name):
    """

    :param config_name: info bug error
    :return:
    """
    # 创建app实例前先配置好日志文件
    setup_log(config_name)
    # 创建app实例对象
    app = Flask(__name__)
    # 实例对象从配置文件中加载配置
    app.secret_key = 'wertyui234567gf!@#$%^&*('
    from flask_cors import CORS  # 跨域
    CORS(app, supports_credentials=True)
    app.config.from_object(config[config_name])   # 这里直接拿到的是类的名字,也就是引用
    return app

  

3 主目录文件app

from log.log import create_app, setup_log  #配置日志
from config.config import Config
import logging

from flask import Flask, views, render_template, send_file, request, session,current_app

app = create_app("development")

  

4 测试

@app.route("/")
def index():
    logging.debug("测试打印日志")
    # logging.warning("测试打印日志")
    # logging.error("测试打印日志")
    return "index page"

  

原文地址:https://www.cnblogs.com/zhangshijiezsj/p/15125552.html