在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访问日志。
我的配置有什么问题?