(三) flask + logging 加入日志记录功能

方法一,直接使用loggin 模块

import logging
from flask import Flask
from flask_cors import CORS
from flask_sqlalchemy import SQLAlchemy

import config    

# 创建db
db = SQLAlchemy()
# 设置
logger = logging.getLogger('gunicorn.info')
handler = logging.FileHandler('test.log', encoding='UTF-8')   # 设置日志字符集和存储路径名字
logging_format = logging.Formatter(                            # 设置日志格式
        '%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s - %(lineno)s - %(message)s')
handler.setFormatter(logging_format) # 绑定格式
logger.addHandler(handler)
logger.setLevel(logging.ERROR)

def create_app():
    app = Flask(__name__)
    app.config.from_object(config)
    CORS(app, resources=r'/*')
    db.init_app(app)
    from . import myRoutes
    myRoutes.register(app)
    return app

APP = create_app()

  使用

from app.model.user import Users
from app.utils.errcode import ReturnValue
from app import dash


def index():
    dash.logger.error('info log')
    users =  Users.query.filter().first()
    return ReturnValue.set_value(success=False, status="no_login", data=users.username)

  文件内容:

方法二, 结合flask 的logger

import logging
from flask import Flask
from flask_cors import CORS
from flask_sqlalchemy import SQLAlchemy

import config    

# 创建db
db = SQLAlchemy()

def create_app():
    app = Flask(__name__)
    app.config.from_object(config)
    CORS(app, resources=r'/*')
    db.init_app(app)
    # handler = logging.FileHandler('flask.log')
    handler = logging.FileHandler('flask.log', encoding='UTF-8')   # 设置日志字符集和存储路径名字
    logging_format = logging.Formatter(                            # 设置日志格式
        '%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s - %(lineno)s - %(message)s')
    handler.setFormatter(logging_format)
    app.logger.addHandler(handler)
    from . import myRoutes
    myRoutes.register(app)
    return app

APP = create_app()

  使用:

from app.model.user import Users
from app.utils.errcode import ReturnValue
from app import dash


def index():
    dash.APP.error('info log')
    users =  Users.query.filter().first()
    return ReturnValue.set_value(success=False, status="no_login", data=users.username)

  

原文地址:https://www.cnblogs.com/ShanCe/p/14237128.html