python--日志&异常处理

import pymysql
import nnlog
import traceback
示例一:
l = [ 1,2,3]
d = {}

try:
# print(l[4])
print(d['name'])
except Exception as e:
print("出异常了",e)
else:
print("不出异常的时候走到这里")
finally:
print("什么时候走这里呢")
except IndexError as e:
print("下标不存在")
print(e)
except KeyError as e:
print("key不存在")
print(e)

示例二:
import pymysql
import nnlog
import traceback
log = nnlog.Logger('python.log',level='debug',backCount=5,when='D')##默认是debug级别最低的,默认保留5天的backCount when=‘D‘,# D H M S D=天,H=小时,M=分钟 S=
#file_name是日志文件名,可以是不存在的文件,会主动帮助创建
#level是日志级别,如果不传的话默认是debug级别
#when是日志文件多久生成一个,默认是按天,S 秒、M 分、 H 小时、 D 天、 W 每星期
#backCount是备份几个日志文件,默认保留5天的
#interval是间隔多久生成一个日志文件,默认是1天
#log.debug('默认日志级别是debug')
#log.info('info级别')
#log.warning('waring级别')
#log.error('error级别')
#log2 = nnlog.Logger(file_name='nn.log') #直接传入文件名也是ok的,其他的就取默认值了
#log2.debug('test')
 

mysql_info = {
'host':'...',
'port':3306,
'db':'XXX',
'password':'123456',
'charset':'utf8',
'autocommit':True,
'user':'jxz'
}
def op_db(sql,one_tag=True):
try:
log.debug("开始连接数据库,数据库连接信息是%s"%mysql_info)
connect = pymysql.connect(**mysql_info)
except Exception as e:
log.debug("连接数据失败")
log.error("连接数据失败,请检查")
log.error(traceback.format_exc())
# traceback.format_exc()拿到出错的那一大坨字符串
#traceback.print_exc()#print错误信息
return "001"
else:
log.debug("开始建立游标")
cur = connect.cursor(pymysql.cursors.DictCursor)
try:
log.debug("开始执行sql")
log.info("sql语句是%s"%sql)
cur.execute(sql)
except Exception as e:
log.warning("sql错误!")
return "002"
else:
if one_tag:
result = cur.fetchone()
else:
result = cur.fetchall()
finally:
cur.close()
connect.close()
return result


posted @ 2020-05-29 19:15  zntest  阅读(374)  评论(0编辑  收藏  举报