处理以下情况的最佳方法是什么:将异常记录到控制台、文件等,然后终止程序? 假设我读入一个配置并验证给定的条目是否有意义。如果没有,我想引发InvalidConfigError,记录此错误并终止,因为无法从中恢复
try:
config = validate_config(read_config(cfg_file_path))
except InvalidConfigError:
logging.getLogger(__name__).exception(f'Config validation failed.')
exit(1)
当我这样做时(注意raise
)
try:
config = validate_config(read_config(cfg_file_path))
except InvalidConfigError:
logging.getLogger(__name__).exception(f'Config validation failed.')
raise
我将在控制台日志中获得重复的回溯,因为我将整个事件(包括异常日志调用中的回溯)记录下来,然后再次引发它,这将再次打印整个事件
有更好的方法吗?我觉得出口(1)不是特别好
version: 1
disable_existing_loggers: False
formatters:
simple:
format: "%(asctime)s : %(name)-12s : %(levelname)-10s %(message)s"
handlers:
console:
class: logging.StreamHandler
level: DEBUG
formatter: simple
stream: ext://sys.stdout
info_file_handler:
class: logging.handlers.RotatingFileHandler
level: INFO
formatter: simple
filename: data/logs/info.log
maxBytes: 10485760 # 10MB
backupCount: 5
encoding: utf8
error_file_handler:
class: logging.handlers.RotatingFileHandler
level: ERROR
formatter: simple
filename: data/logs/errors.log
maxBytes: 10485760 # 10MB
backupCount: 5
encoding: utf8
root:
level: DEBUG
handlers: [console, info_file_handler, error_file_handler]
目前没有回答
相关问题 更多 >
编程相关推荐