我在python中使用logging
模块。当我在命令行中使用错误的参数调用脚本时,日志文件在某个时刻包含一个单词“None”,我不知道它来自何处。在
这是我的代码切分,我在这里日志记录.异常公司名称:
# Show script where to find blank- and viva-data / set argv
vz = glob.glob("/home/jw/cmp_blank_viva/*csv")
skript, s1, m1 = argv
# Define script-functions and logging-config
logging.basicConfig(level=logging.ERROR, filename='cmp_blank_viva.log', format='%(asctime)s:%(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
def open_data(vz, s1, m1):
try:
checker = []
for i in vz:
if "drhot_viva_check_%s" % m1 in i:
blank_data = csv.reader(open(i, 'r'))
checker.append(1)
else:
pass
if 1 not in checker:
logging.exception("Could not open viva file with %s %s.\n" % (s1, m1))
checker = []
for i in vz:
if "hoteldaten_%s_%s" % (m1, s1) in i:
viva_data = csv.DictReader(open(i, 'r'), delimiter = ';')
checker.append(1)
else:
pass
if 1 not in checker:
logging.exception("Could not open blank file with %s %s.\n" % (s1, m1))
return blank_data, viva_data
except IOError:
logging.exception("Could not open file:\n " + traceback.format_exc())
except IndexError:
logging.exception("Could not open file:\n " + traceback.format_exc())
运行脚本(使用错误的参数)后,日志文件如下所示:
^{pr2}$有什么想法吗?在
您使用的是
logging.exception()
,当时没有异常:因为没有异常要记录,所以添加了
^{pr2}$None
。在这里使用logging.error()
只记录一条消息:您不需要插入字符串元素,
logging
会在需要时为您执行此操作。我还删除了\n
新行,这也是为您添加的。在在其他地方,当位于异常处理程序中时,您将手动包括异常:
您不需要手动附加回溯,
logging.exception()
会为您处理这个问题,并包含正确格式的回溯。在只需记录消息,无需更多:
从^{} documentation :
Bold emphasis我的;您在异常处理程序之外使用它,因此没有异常可供记录。在
它通过为您设置^{} keyword argument 来实现此目的:
相关问题 更多 >
编程相关推荐