Flask - 如何使用 RotatingFileHandler 将 werkzeug 日志写入日志文件?
Flask - how to write werkzeug logs to log file using RotatingFileHandler?
我发现了一些类似的问题,但没有直接解决这个问题的问题。
我正在尝试将所有 Werkzeug 日志记录输出到日志文件。我可以获得部分日志记录以输出到文件,但我似乎无法捕获任何错误或超出基本 route/request 行的任何内容。
这是我的资料。如何包含 Werkzeug 的所有输出?
if __name__ == '__main__':
configure_app(app)
handler=RotatingFileHandler('server_werkzeug.log', maxBytes=10000000, backupCount=5)
log = logging.getLogger('werkzeug')
log.setLevel(logging.DEBUG)
log.addHandler(handler)
此代码非常适合日志记录。至于不记录错误的问题,似乎除了'werkzeug'之外,您还必须指定其他记录器。对于 Flask 中的回溯错误,它是 app.logger 你要找的东西。并且不要忘记将级别设置为警告。
import logging
import logging.handlers
app = Flask(__name__)
handler = logging.handlers.RotatingFileHandler(
'log.txt',
maxBytes=1024 * 1024)
logging.getLogger('werkzeug').setLevel(logging.DEBUG)
logging.getLogger('werkzeug').addHandler(handler)
app.logger.setLevel(logging.WARNING)
app.logger.addHandler(handler)
如果您的应用使用某些第三方工具进行数据库查询、cron 作业等,您也可以添加其他记录器。
logging.getLogger('apscheduler.scheduler').setLevel(logging.DEBUG)
logging.getLogger('apscheduler.scheduler').addHandler(handler)
记录器的名称可以在终端中找到window:
INFO:werkzeug:127.0.0.1 - - [10/Mar/2018 15:41:15] "GET /file.js HTTP/1.1" 200 -
DEBUG:apscheduler.scheduler:Next wakeup is due at 2018-03-10 16:00:00+03:00 (in 1124.668881 seconds)
使用dictConfig
是一种更具扩展性的方式。
from logging.config import dictConfig
dictConfig({
'version': 1,
'handlers': {
'file.handler': {
'class': 'logging.handlers.RotatingFileHandler',
'filename': 'server_werkzeug.log',
'maxBytes': 10000000,
'backupCount': 5,
'level': 'DEBUG',
},
},
'loggers': {
'werkzeug': {
'level': 'DEBUG',
'handlers': ['file.handler'],
},
},
})
我发现了一些类似的问题,但没有直接解决这个问题的问题。
我正在尝试将所有 Werkzeug 日志记录输出到日志文件。我可以获得部分日志记录以输出到文件,但我似乎无法捕获任何错误或超出基本 route/request 行的任何内容。
这是我的资料。如何包含 Werkzeug 的所有输出?
if __name__ == '__main__':
configure_app(app)
handler=RotatingFileHandler('server_werkzeug.log', maxBytes=10000000, backupCount=5)
log = logging.getLogger('werkzeug')
log.setLevel(logging.DEBUG)
log.addHandler(handler)
此代码非常适合日志记录。至于不记录错误的问题,似乎除了'werkzeug'之外,您还必须指定其他记录器。对于 Flask 中的回溯错误,它是 app.logger 你要找的东西。并且不要忘记将级别设置为警告。
import logging
import logging.handlers
app = Flask(__name__)
handler = logging.handlers.RotatingFileHandler(
'log.txt',
maxBytes=1024 * 1024)
logging.getLogger('werkzeug').setLevel(logging.DEBUG)
logging.getLogger('werkzeug').addHandler(handler)
app.logger.setLevel(logging.WARNING)
app.logger.addHandler(handler)
如果您的应用使用某些第三方工具进行数据库查询、cron 作业等,您也可以添加其他记录器。
logging.getLogger('apscheduler.scheduler').setLevel(logging.DEBUG)
logging.getLogger('apscheduler.scheduler').addHandler(handler)
记录器的名称可以在终端中找到window:
INFO:werkzeug:127.0.0.1 - - [10/Mar/2018 15:41:15] "GET /file.js HTTP/1.1" 200 -
DEBUG:apscheduler.scheduler:Next wakeup is due at 2018-03-10 16:00:00+03:00 (in 1124.668881 seconds)
使用dictConfig
是一种更具扩展性的方式。
from logging.config import dictConfig
dictConfig({
'version': 1,
'handlers': {
'file.handler': {
'class': 'logging.handlers.RotatingFileHandler',
'filename': 'server_werkzeug.log',
'maxBytes': 10000000,
'backupCount': 5,
'level': 'DEBUG',
},
},
'loggers': {
'werkzeug': {
'level': 'DEBUG',
'handlers': ['file.handler'],
},
},
})