日志配置
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日志")