在Flask中配置两个记录器

时间:2018-06-11 08:11:11

标签: python logging flask

在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运行它。使用此配置,唯一记录的内容是my_app.log文件中的HTTP访问日志。

我的配置有什么问题?

0 个答案:

没有答案
相关问题