Python错误日志的写入方法
目录:
#1 第三方库下载
#2 代码原理
#3 完整代码分享
#4 效果展示
-
第三方库
Traceback 库Win+R打开"运行" 输入"CMD" 在运行台输入以下代码 'pip install traceback' 即可下载此第三方库
-
原理
代码'traceback.format_exc()'可获取出错的原因 代码'datetime.datetime.now()'可获取当前时间 以便给日志命名
-
完整代码
#-*- coding:utf-8 -*- # author:ANLIN #此代码建议用在try;except后 #用于写入错误日志 #导入必要库 import os,datetime #导入获取错误库 import traceback #获取错误原因 Error = str(traceback.format_exc()) #打印错误原因 print(Error) ''' 为什么? Why? 因为如果此代码用在try后将不会报错 所以需要打印错误原因才能在控制台通知错误 ''' #获取当前时间: #格式:”年-月-日 时:分:秒.毫秒” when = datetime.datetime.now() #对获取的时间进行处理: time_list = str(when).split(' ') #将获取到的字符串以空格拆分成[日期,时间] time_second = time_list[1].split('.')[0] #获取列表中的时间变量[1]以”.”拆分字符串,去除毫秒,获取第零索引 ''' 为什么? Why? 对人们来说,往往时间不必精确到毫秒 但是对计算机来说,它就会获取现在精准时间获取了毫秒,甚至微秒 我们不需要,所以需要将”.”后的所有部分去除 ''' time_second = time_second.split(':') #以”:”将字符串拆分成[时,分,秒] time_second = '-'.join(time_second) #以”-“组合列表 ''' 为什么? Why? 因为获取到的时间字符串包含”.”和”:” 而文件名中不能包含”.”和”:”,所以要进行处理 以”-“来代替”.”和”:” ''' #日志名 file_name = '%s_%s_ErrorLog.log'%(time_list[0],time_second) #创建Log文件夹 Log_dir = 'Log' #检测文件夹是否存在,不存在则创建 if not os.path.exists(Log_dir): os.mkdir(Log_dir) #写入错误原因,构成错误日志 with open(Log_dir+'\\%s'%file_name, 'w',coding = 'utf-8') as SaveLog: #写入字符串,更改后可以改变日志内容 SaveLog.write('Error:%s\n'%when+Error)
-
代码效果
主代码 test.pyw
保存错误日志.py
运行后效果
同目录文件夹
出现’Log’文件夹 并 创建了log文本
文本内容
基本与打印内容相似