1. 程式人生 > 其它 >falsk 配置日誌 +跨域

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"