“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 5 天,点击查看活动详情”
0 环境
- 编辑器:webstorm或者vscode
- 系统版本:windows10
- 编辑器版本:最新
- 浏览器:谷歌
1 参考文档
2 前言
日志的重要性是真的不能忽略的,不能 认为这种记录的意义好像也不太大,我直接print,看打印结果就可以呀,还省事,后来随着项目内容变多了,打print是真的难受,打个比方,一般都是去过医院吧,有次我见到过某个患者在自助机上缴了费,无法签到,然后发现自己帮前面那个人缴了费,调个日志就能查到前面那位是谁了,而print呢,可能定位这个问题会很烦或者说很不合适。
3 日志级别
日志级别分为如下几个点:
- DEBUG:为了得到详细的信息,快速定位问题,调试问题,一般是开发环境下搞。
- INFO:用来记录关键的信息,我的理解就是留痕。
- WARNING:记录警告信息。比如内存不足。
- ERROR:记录错误信息,比如某些功能不能正常运行。
- CRITICAL:记录严重信息,这里严重的信息是指导致程序无法运行的信息。
默认级别是警告,小于该级别的不会输出。
4 更改日志级别
默认打印结果是这样的,如下图所示:
假如我想要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")
一般都是需要时间,具体错误,进程id啥的,如下图:
但是我想格式化日期呢,如下图,只需要在配个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")
5 小结
日志的好处:用来记录运行的信息,也方便定位,而且使用起来效果比print更好,需要知道有几种日志级别,怎么改默认的日志级别,以及怎么给日志加入关键信息,并且如何格式日期。