python笔记 初识日志

223 阅读2分钟

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 5 天,点击查看活动详情

0 环境

  • 编辑器:webstorm或者vscode
  • 系统版本:windows10
  • 编辑器版本:最新
  • 浏览器:谷歌

1 参考文档

参考文档

2 前言

日志的重要性是真的不能忽略的,不能 认为这种记录的意义好像也不太大,我直接print,看打印结果就可以呀,还省事,后来随着项目内容变多了,打print是真的难受,打个比方,一般都是去过医院吧,有次我见到过某个患者在自助机上缴了费,无法签到,然后发现自己帮前面那个人缴了费,调个日志就能查到前面那位是谁了,而print呢,可能定位这个问题会很烦或者说很不合适。

3 日志级别

日志级别分为如下几个点:

  • DEBUG:为了得到详细的信息,快速定位问题,调试问题,一般是开发环境下搞。
  • INFO:用来记录关键的信息,我的理解就是留痕。
  • WARNING:记录警告信息。比如内存不足。
  • ERROR:记录错误信息,比如某些功能不能正常运行。
  • CRITICAL:记录严重信息,这里严重的信息是指导致程序无法运行的信息。

默认级别是警告,小于该级别的不会输出。

4 更改日志级别

默认打印结果是这样的,如下图所示: image.png 假如我想要DEBUG和INFO也能打印呢,只需要配置basicConfig里的level即可。如下:我们要知道为啥会这样,因为它是有排序级别,越严重的越靠前。

CRITICAL > ERROR > WARNING > INFO > DEBUG
import logging

logging.basicConfig(level=logging.DEBUG)
logging.debug('这是一条debug')
logging.info('这是一条info')
logging.warning("This is a warning")
logging.error("This is an error")
logging.critical("This is an critical")

image.png

一般都是需要时间,具体错误,进程id啥的,如下图: image.png 但是我想格式化日期呢,如下图,只需要在配个datefmt即可,而且不要纠结时间不对,因为这是我服务器的时间没改:

import logging

logging.basicConfig(level=logging.DEBUG, 
format='%(asctime)s %(levelname)s %(process)s %(thread)s %(name)s %(message)s',
datefmt = '%Y年%m月%d日  %H:%M:%S' )
logging.debug('这是一条debug')
logging.info('这是一条info')
logging.warning("This is a warning")
logging.error("This is an error")
logging.critical("This is an critical")

image.png

5 小结

日志的好处:用来记录运行的信息,也方便定位,而且使用起来效果比print更好,需要知道有几种日志级别,怎么改默认的日志级别,以及怎么给日志加入关键信息,并且如何格式日期。