flask запись файла приложения в отдельный модуль - PullRequest
0 голосов
/ 09 июля 2020

Я хочу записывать flask действий приложения в файл. Я хочу, чтобы конфигурации ведения журнала находились в отдельном модуле. На данный момент он у меня работает, но он находится внутри файла flask_app.py.

app = Flask(__name__)

@app.route('/')
def home():
    app.logger.info("Foo Bar")
    return "Hello World!"

if __name__ == '__main__':
    import app_logging
    import logging
    from logging.handlers import RotatingFileHandler
    log_handler = RotatingFileHandler(app_logging.LOG_FILE, maxBytes=app_logging.LOG_SIZE, backupCount=app_logging.LOG_ROTATION)
    log_handler.setFormatter(app_logging.FORMATTER)
    log_handler.setLevel(logging.INFO)
    app.logger.setLevel(logging.INFO)
    app.logger.addHandler(log_handler)
    app.run(port=5000)

я хочу переместить ведение журнала в отдельный модуль (application_logging.py), например

import logging
from logging.handlers import RotatingFileHandler
FORMATTER = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
LOG_FILE = "info.log"
LOG_SIZE = 1024 * 1024
LOG_ROTATION = 1
def get_app_logger():
    log_handler = RotatingFileHandler(LOG_FILE, maxBytes=LOG_SIZE, backupCount=LOG_ROTATION)
    log_handler.setFormatter(FORMATTER)
    log_handler.setLevel(logging.INFO)
    return log_handler


и вызовите log_handler для flask_app.py, например:

if __name__ == '__main__':
    import app_logging 
    app.logger = app_logging.get_logger()
    app.logger.setLevel(logging.INFO)
    app.logger.addHandler(log_handler)
...