Настройте два регистратора в Flask - PullRequest
0 голосов
/ 11 июня 2018

В приложении Flask я хотел бы настроить два разных регистратора файлов:

  • Один для журналов доступа HTTP (access.log), который будет регистрировать такие вещи, как:

    1.2.3.4 - [11/Jun/2018 09:51:13] "GET /some/path HTTP/1.1" 200 -
    
  • Один для журналов приложений (my_app.log), который будет хранить журналы, определенные мной в моем коде, когда я использую current_app.logger.info('some message'):

    2018-06-08 15:08:50,083 - flask.app - INFO - some message
    

Как должна выглядеть моя конфигурация для достижения этой цели?Вот что я безуспешно пытался:

# content of "run.py" :
app = Flask(__name__)
app.logger.removeHandler(default_handler)

# Define 'my_app.log' :
handler = logging.FileHandler('my_app.log')
handler.setLevel(logging.INFO)
formatter = logging.Formatter(app.config['LOGGING_FORMAT'])
handler.setFormatter(formatter)
app.logger.addHandler(handler)

# Define 'access.log' :
access_handler = logging.getLogger('werkzeug')
access_handler = logging.FileHandler('access.log')
access_handler.setLevel(logging.DEBUG)
access_handler.setFormatter(app.config['LOGGING_FORMAT'])
app.logger.addHandler(access_handler)

# Then register my blueprints:
app.register_blueprint(some_blueprint, url_prefix='/')
....

И я запускаю его с python3 run.py.С этим конфигом единственные зарегистрированные данные - это журналы HTTP-доступа в файле my_app.log.

Что не так с моей конфигурацией?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...