Flask框架的日志配置

日志配置

logs/logs.py
logs/flask.log

import os
import logging
from logging.handlers import RotatingFileHandler

# 获取当前绝对路径
def get_cwd():
    return os.path.dirname(os.path.abspath(__file__))

def log_config():
    # 设置日志的的登记
    logging.basicConfig(level=logging.DEBUG)

    # 日志输出目录
    log_path = os.path.join(get_cwd(),'flask.log')
    # 创建日志记录器,设置日志的保存路径和每个日志的大小和日志的总大小
    file_log_handler = RotatingFileHandler(log_path, encoding='UTF-8', maxBytes=1024*1024*100,backupCount=100)
    # 创建日志记录格式,日志等级,输出日志的文件名 行数 日志信息
    # formatter = logging.Formatter("%(levelname)s %(asctime)s [%(filename)s]: %(lineno)s - %(funcName)s - %(message)s")
    formatter = logging.Formatter("%(levelname)s %(asctime)s [%(filename)s]: %(lineno)s - %(funcName)s - %(message)s")
    # 为日志记录器设置记录格式
    file_log_handler.setFormatter(formatter)
    # 为全局的日志工具对象(flaks app使用的)加载日志记录器
    logging.getLogger().addHandler(file_log_handler)

log使用

在manager.py中创建app前导入logs.py

manager.py

from flask import Flask
from flask_script import Manager
from logs.logs import log_config
import logging

log_config()#创建app前设置日志

app = Flask(__name__)
# 装载配置
app.debug = config.DEBUG

manager = Manager(app)

# 设置登录view为user模块的login
login_manager.login_view = 'user.login'
login_manager.init_app(app)

# 注册路由
app.register_blueprint(user, url_prefix='/user')

# 测试log
logging.debug("测试debug日志")
logging.info("测试info日志")
logging.warning("测试warning日志")
logging.error("测试error日志")

if __name__ == '__main__':
    manager.run()

其他项目中使用

例如apps/user/views.py

from flask import Blueprint
import logging

user = Blueprint('user', __name__)

@user.route('/login')
def login():
  logging.debug("测试debug日志")
  logging.info("测试info日志")
  logging.warning("测试warning日志")
  logging.error("测试error日志")
posted @ 2021-12-09 09:38  明月,  阅读(1650)  评论(0编辑  收藏  举报