python-3.x - 如何将异常记录到文件中?
问题描述
我的一条生产路线遇到了困难。我正在尝试用logging
模块诊断错误:
初始化.py:
from flask import Flask
from logging import FileHandler, DEBUG
...
def create_app(script_info=None):
app = Flask(__name__, template_folder='', static_folder='')
file_handler = FileHandler('./errorlog.txt')
file_handler.setLevel(DEBUG)
app.logger.addHandler(file_handler)
...
...
return app
蓝图路线:
from flask import current_app
from datetime import datetime
...
...
@blog_blueprint.route('/contact', methods=['POST'])
@cross_origin()
def contact():
...
...
requests.post('https://api.sendpulse.com/smtp/emails', data=json.dumps(data))
response_obj['status'] = 'success'
response_obj['message'] = 'message sent'
return jsonify(response_obj), 200
except Exception as e:
current_app.logger.debug(f'{datetime.now()}: '+str(e))
return jsonify(response_obj), 400
else:
current_app.logger.debug(f'{datetime.now()}, name: '+name)
current_app.logger.debug(f'{datetime.now()}, email: '+email)
current_app.logger.debug(f'{datetime.now()}, subject: '+subject)
response_obj['message'] = 'unrecognized email provider'
return jsonify(response_obj), 400
该errorlog.txt
文件已创建,但在测试路线后为空。非常感谢任何反馈。
解决方案
可能默认的日志记录级别高于 DEBUG。如果你这样做,它是否有效:current_app.logger.warning("test")
?
然后尝试像这样设置调试级别:
current_app.logger.setLevel(logging.DEBUG)
请注意,它是在记录器而不是处理程序上完成的。
推荐阅读
- python - 在网页上运行简单的脚本
- python - 使用基于日期范围的分类变量创建新列
- scrapy - Python scrapy 提交表单数据
- ruby - Ruby 中有没有一种方法可以在数组中增加 Struct 对象变量?
- asp.net-mvc - ASP.NET MVC:强类型视图中的模型未填充
- docker - 使用 docker IIS 容器运行本地网页
- graphics - Vulkan:顶点缓冲区不会发送到顶点着色器
- java - Oracle 19c 与 jdk7 的兼容性
- php-openssl - php从csr获取subjectAltName
- php - php Api 托管在 AWS s3 存储桶上