2017-01-21 6 views
1

У меня работает фляжка. Я бы хотел записать журнал.Как войти в фляжку

app = Flask(__name__) 

print() утверждения не работают. (Возможно, потому, что я бег фляги в Докер контейнере?) Где-то в Интернете я нашел этот синтаксис:

app.logger.info('successful query') 

, который работает за исключением выхода довольно громоздкий:

-------------------------------------------------------------------------------- 
INFO in app [/usr/src/app/app.py:187]: 
successful query 
-------------------------------------------------------------------------------- 

Вы можете себе представить, как куча этих строк несколько раздражает. Вы печатаете 4 строки, когда сможете распечатать их.

Есть ли простой и простой способ записи произвольных сообщений в фляж на одной строке?

+0

Не используйте регистратор приложений, используйте свой собственный регистратор. Это все стандартные протоколы Python. – davidism

+0

Я вижу https://docs.python.org/3/library/logging.html. Я буду искать пример использования. Если это работает, не стесняйтесь оставить ответ ниже, и я приму его. –

+0

@davidism logging.info не работает. Сообщения не выходят. Другие идеи? –

ответ

1

Я думаю, что Formatter - лучший способ сделать это. Например:

import logging 
from logging.handlers import TimedRotatingFileHandler 
from flask import Flask 

app = Flask(__name__) 

formatter = logging.Formatter("[%(asctime)s] %(message)s") 

handler = TimedRotatingFileHandler('path/to/file.log', when='midnight', 
            interval=1, backupCount=5) 
handler.setLevel(logging.INFO) 
handler.setFormatter(formatter) 
app.logger.addHandler(handler) 

asctime и сообщение предопределены attributes.