我有个脚本需要不停地跑,已经使用logging的TimedRotatingFileHandler安装时间进行了切割,并且只保存最近两天的数据。以下是我logging定义的内容
log_fmt = '%(threadName)s %(asctime)s %(levelname)s %(message)s'
formatter = logging.Formatter(log_fmt)
log_file_handler = TimedRotatingFileHandler(filename='logs/'+myselfName, when="midnight", interval=1, backupCount=2)
log_file_handler.setFormatter(formatter)
logging.basicConfig(level=logging.INFO,format=log_fmt)
logger = logging.getLogger()
logger.addHandler(log_file_handler)
脚本跑了几天了,我发现个问题,如果代码报错(出bug了)是不会被记录到logging中的,这样的话,就导致我看不到什么原因报错了,只能看到代码执行到某个流程卡住了,有什么办法,可以看到报错的语句吗?
补充一下,我的程序背景可能比较好,我这个脚本是gevent协程库的一个脚本,也就是说其中一个协程可能报错了,但是不会影响整个程序中断,别的协程在接着跑,最后导致在客户端看到的数据就是某些字段缺失了或者字段没有被计算过
可能有人提醒我用try except 捕捉一下,这是知道报错的位置的前提用的方法,关键我不知道哪里有报错,想知道如果不用try except,有什么办法?