logging 日志的学习

1.logging的使用

日志是我们排查问题的关键利器,写好日志记录,当我们发生问题时,可以快速定位代码范围进行修改。

案例:

import logging
logging.debug('this is debug')
logging.info('this is info')
logging.warning('this is warning')
输出:

WARNING:root:this is warning
级别从下到上依次升高。 默认情况下,logging 将日志打印到屏幕,日志级别大小关系为: CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET ,当然也可以自己定义日志级别。

DEBUG:详细的信息,通常只出现在诊断问题上。

INFO:确认一切按预期运行

WARNING:一个警告,可能会有一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”)。这个软件还能按预期工作

ERROR:个更严重的问题,软件没能执行一些功能

CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行


2.通过logging.basicConfig函数对日志的输出格式及方式做相关配置

把日志写在文件中:

logging.basicConfig(level= logging.DEBUG,format= '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',datefmt=' %Y/%m/%d %H:%M:%S', filename='myapp.log', filemode='w')

logger = logging.getLogger(__name__)
logging.debug('this is debug')
logging.info('this is info')
logging.warning('this is warning')
logging.error('this is error')
logging.critical('this is critical')
结果:

新加了一个文件,内容为:

2017/11/13 22:45:54 rizhi.py[line:23] DEBUG this is debug
2017/11/13 22:45:54 rizhi.py[line:24] INFO this is info
2017/11/13 22:45:54 rizhi.py[line:25] WARNING this is warning
2017/11/13 22:45:54 rizhi.py[line:26] ERROR this is error
2017/11/13 22:45:54 rizhi.py[line:27] CRITICAL this is critical

参数的用法:

level: 设置日志级别,默认为logging.WARNING

filename: 指定日志文件名。

filemode: file函数意义相同,指定日志文件的打开模式,'w''a'

format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示:

%(levelname)s: 打印日志级别名称

  %(filename)s: 打印当前执行程序名

 %(funcName)s: 打印日志的当前函数

 %(lineno)d: 打印日志的当前行号

 %(asctime)s: 打印日志的时间

 %(thread)d: 打印线程ID

  %(process)d: 打印进程ID

 %(message)s: 打印日志信息

datefmt: 指定时间格式,同time.strftime()

stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当streamfilename同时指定时,stream被忽略

logging.getLogger([name]):创建一个日志对象:

 

返回一个logger实例,如果没有指定name,返回root logger。只要name相同,返回的logger实例都是同一个而且只有一个,即namelogger实例是一一对应的。这意味着,无需把logger实例在各个模块中传递。只要知道name,就能得到同一个logger实例。

logging.getLogger(__name__) 在上述实例中__name__就指的是__main__



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值