python中异常后加和日志


 自定义 异常类:

class sexExcption(Exception):
    '''
    自定义性别 异常类
    '''
    pass
try:
    sex = input('请输入性别:')
    if sex!='男' and sex!='女':
        raise sexExcption('性别只能是男或女')#raise:抛出异常
except sexExcption as ex: #except:捕获异常
    print(ex)
except Exception as ex:
    print(ex)
finally:
    print('程序结束..')
如图:


日志相关概念 用来记录程序中 重要的消息
日志--》对象
日志的作用:
1.程序调试
2.了解软件程序运行情况是否正常
3.软件程序运行故障分析与问题定位

最常用的:错误级别==>权重值    和描述:
DEBUG = 10         :最详细的日志信息,典型应用场景是 问题诊断
INFO = 20            :信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作
WARNING = 30   :当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的
ERROR =  40        :由于一个更严重的问题导致某些功能不能正常运行时记录的信息
CRITICAL = 50      :当发生严重错误,导致应用程序不能继续运行时记录的信息
上面列表中的日志等级是从上到下依次升高的,即: DEBUG < INFO < WARNING < ERROR < CRITICAL,
而日志的信息量是依次减少的;
不常用:
ALERT
EMERGENCY
NOTICE
 配置级别:两种写法
一:
import  logging
logging.debug('this is a debug')
logging.info('this is a info')
logging.warning('this is a warning')
logging.error('this is a error')
logging.critical('this is a critical')
如图:

二:
logging.log(logging.DEBUG,'this is a debug')
logging.log(logging.INFO,'this is a info')
logging.log(logging.WARNING,'this is a warning')
logging.log(logging.ERROR,'this is a error')
logging.log(logging.CRITICAL,'this is a critical')
如图:

为什么有两条日志没有打印出来?
这是因为logging模块提供的日志记录函数所使用的日志器设置的日志级别是WARNING,
因此只有WARNING级别的日志记录以及大于它的ERROR和CRITICAL级别的日志记录被输出了,
而小于它的DEBUG和INFO级别的日志记录被丢弃了。

以DEBUG为衡量标准:
import  logging
logging.basicConfig(level=logging.DEBUG) #level:指定日志级别
logging.log(logging.DEBUG,'this is a debug')
logging.log(logging.INFO,'this is a info')
logging.log(logging.WARNING,'this is a warning')
logging.log(logging.ERROR,'this is a error')
logging.log(logging.CRITICAL,'this is a critical')
如图:


一条日志信息对应的是一个事件的发生,而一个事件通常需要包括以下几个内容:
1.事件发生 时间
2.事件发生 位置
3.事件的严重程度-- 日志级别
4.事件 内容
案例:
 在一个新的模块生成日志和设置日志格式:
import  logging
log_format = '%(asctime)s- %(levelname)s- %(message)s'
设置日志的时间格式:
DATE_FORMAT = "%m/%d/%Y %H:%M:%S %p"
logging.basicConfig(level=logging.DEBUG,
                    filename='my.log',
                    format=log_format,
                    datefmt=DATE_FORMAT)
logging.debug('this is a debug')
#修改数据内容:
logging.debug('%s is %d year old',"tom",20) #%s:字符  %d:数字
logging.info('this is a info')
logging.warning('this is a warning')
logging.error('this is a error')
logging.critical('this is a critical')
如图:

输出结果:

引入一个案例:
以UTF-8格式是读取不了的,改为GBK 格式
class sexExcption(Exception):
    pass
try:
    sex = input('请输入性别:')
    if sex!='男' and sex!='女':
        raise sexExcption('性别只能是男或女')
except sexExcption as ex:
    logging.debug(ex)
except Exception as ex:
    print(ex)
finally:
    print('程序结束..')
如图:
日志录入:


完毕!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值