python日志和异常

异常:
  try:
  except异常类型,捕获异常 处理异常 也可以嵌套   除了。。。
  except Exception as xx:未知错误。如果之前的都没有,就抓所有
  else:没有错误

可以写入多个except 捕获异常:
except 异常类型 as xx:——具体的异常信息对象
           执行了一个异常后不会继续执行下面的异常
         (except(可以写多个异常类型),可以统一执行的时候用,但是不知道具体错误信息)
exception:可以判断所有错误,但不知道是哪一个错误类型,无法定位,建议最后用,语法错误无法抓住,比如缩进
finally:不管有没有异常一定会执行 异常的终结者, 一般把关闭的操作写入这里 
          遇到return 先看有没有finally,如果有先执行finally在return

exit()退出程序对本身方法没有影响 对下面其他异常的有影响

自定义异常:raise
   raise 后面可以自定义异常 用try捕获 输出异常
   try:
   raise  xxxx(" ")
   except xxxx as x:

日志:
可以查看日常登录、异常等日志信息,有日志文件,按照日志级别进行打印 导入日志
日志级别:
critical (危急)> error(错误) > warning(警告) > info (信息)> debug(调试),notset(没有设置)
   级别越高打印的日志越少,反之亦然,即:
    debug    : 打印全部的日志(notset等同于debug)
    info     :    打印info,warning,error,critical级别的日志
    warning  : 打印warning,error,critical级别的日志 
    error    :    打印error,critical级别的日志


创建示例:
可以创建一个文件(如:a)并按照设定的格式来保存日志信息:
    (如果没有创建会默认在当前路径下自动创建,查看文件时需要转成 GBK)
import logging    #先导入日志
XXX日志格式 = "%(asctime)s - %(levelname)s - %(message)s" 
 #输出格式         #日志日期    #日志级别错误类型  #输出日志信息内容
logging.basicConfig(filename='a.txt',level=logging.DEBUG,format=xxx)
 #调用固定方法     #输出到a这个文件名里  #level定义级别    #format按照哪个格式去输出


可以定义一个函数方法设定捕获日志:
示例:
def test():
    try:
        a=int(input("请输入一个被除数:"))   #设置一个程序运行
        b=int(input("请输入一个除数:"))
        print(a/b)
        return
    except (ValueError):                        ——#设置出现那种异常 设定导入日志级别
        logging.debug("只能输入数字!")  ——#输入设定的信息
    except ZeroDivisionError:                #同上
        logging.info("除数不能为0" )          
    else:
        print("else...")
    finally:
        print("程序结束")
test()




日志格式:
logging.basicConfig()函数中的具体参数:
   filename:   指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中;
   filemode:   文件打开方式,在指定了filename时使用这个参数,默认值为“w”还可指定为“a”;
   format:      指定handler使用的日志显示格式;
   datefmt:    指定日期时间格式。,格式参考strftime时间格式化(下文)
   level:         设置rootlogger的日志级别
   stream:     用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件,默认为sys.stderr。
                      若同时列出了filename和stream两个参数,则stream参数会被忽略。


format参数中可能用到的格式化信息:
  %(name)s                 Logger的名字
  %(levelno)s               数字形式的日志级别
  %(levelname)s           文本形式的日志级别
  %(pathname)s           调用日志输出函数的模块的完整路径名,可能没有
  %(filename)s             调用日志输出函数的模块的文件名
  %(module)s               调用日志输出函数的模块名
  %(funcName)s           调用日志输出函数的函数名
  %(lineno)d                 调用日志输出函数的语句所在的代码行
  %(created)f                当前时间,用UNIX标准的表示时间的浮 点数表
  %(relativeCreated)d    输出日志信息时的,自Logger创建以 来的毫秒数
  %(asctime)s                字符串形式的当前时间。默认格式是 "年-月-日 时:分:秒,毫秒"
  %(thread)d                 线程ID。可能没有
  %(threadName)s        线程名。可能没有
  %(process)d               进程ID。可能没有
  %(message)s              用户输出的消息

python中时间日期格式化符号:
     %y                    两位数的年份表示(00-99)
     %Y                    四位数的年份表示(000-9999)
     %m                   月份(01-12)
     %d                    月内中的一天(0-31)
     %H                   24小时制小时数(0-23)
     %I                     12小时制小时数(01-12)
     %M                   分钟数(00=59)
     %S                    秒(00-59)
     %a                    本地简化星期名称
     %A                    本地完整星期名称
     %b                    本地简化的月份名称
     %B                    本地完整的月份名称
     %c                    本地相应的日期表示和时间表示
     %j                     年内的一天(001-366)
     %p                    本地A.M.或P.M.的等价符
     %U                    一年中的星期数(00-53)星期天为星期的开始
     %w                    星期(0-6),星期天为星期的开始
     %W                   一年中的星期数(00-53)星期一为星期的开始
     %x                     本地相应的日期表示
     %X                     本地相应的时间表示
     %Z                     当前时区的名称
     %%                    %号本身
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值