2016-03-27 4 views
2

Я пытаюсь настроить несколько регистраторов для флеш-приложения.Ошибка конфигурации журнала регистрации флагов

applogger.py:

import logging 
from logging.handlers import SMTPHandler, RotatingFileHandler 

def setup_logging(app): 
    file_handler = RotatingFileHandler("logger_out.txt") 
    email_handler = SMTPHandler(...) 
    loggers = [app.logger] 
    for logger in loggers: 
     logger.addHandler(email_handler) 
     logger.addHandler(file_handler) 
logger = LocalProxy(lambda: current_app.logger) 

appsetup.py

def create_app(object_name): 
    app = Flask(__name__) 
    app.config.from_object(object_name) 
    setup_logging(app) 

appview.py

from applogger import logger 

@app_view.route('/') 
def index(): 
    logger.debug(">>index") 
    return render_template('home.html') 

Вход в консоль работает, но регистраторы файлов и электронной почты не работает. Кроме того, это выглядит немного хаком, передающим приложение в метод setup_logging() в модуле applogger.py. До этого я использовал

app = current_app._get_current_object() 

внутри метода setup_logging(), но получил ошибку «работающий вне контекста приложения». Любые идеи по рекомендуемому способу настройки нескольких регистраторов для Flask?

ответ

1

Я обнаружил, что расположение регистратора выходной файл был на один уровень выше, где я ожидал. Используя файл ../log_out.txt в файле журнала, поместите файл журнала в два каталога вверх на уровне папки приложения.

1

Если Debug = True чем колбу только войти что-то рассматривать как ошибку попробуйте установить уровень журнала, как это:

app.logger.setLevel(logging.DEBUG) 
+0

Я использую стандартный логгер python, и у l aready был установлен файл file_handler.setLevel (logging.DEBUG), который я просто не показывал, чтобы оставаться кратким. Спасибо, хотя, как показано, я бы ничего не видел. –

+0

О, ладно. Очень рад, что вы его исправили =). – sebenalern

Смежные вопросы