Python——日志logging

Python标准库模块中有一个logging,logging模块包含以下内容

  • 想保存到日志中的消息
  • 不同的优先级以及对应的函数:debug()、info()、warn()、error()、crtical()
  • 一个或多个logger对象
  • 把消息写入终端、文件、数据库或者其他地方的handler
  • 创建输出的formatter
import logging
logging.info('logging info')
logging.error('logging error')
logging.debug('logging debug')
logging.warning('logging warning')
>>>
ERROR:root:logging error
WARNING:root:logging warning

从输出来看,debug()和info()什么都没有打印,另外两个函数在每条信息之前打印出来级别:root

指定日志级别

日志的默认优先级是WARNING
我们可以通过logging的basicConfig()来设置默认的级别

import logging
logging.basicConfig(level='DEBUG')
logging.info('logging info')
logging.error('logging error')
logging.debug('logging debug')
logging.warning('logging warning')
>>>
INFO:root:logging info
ERROR:root:logging error
DEBUG:root:logging debug
WARNING:root:logging warning

从输出可以看到DEBUG是最低一级,因此可以看到打印所有的日志级别信息

logger对象

logger_a= logging.getLogger('logger')
logger_a.debug('logger debug')
>>>
DEBUG:logger:logger debug

指定输出log信息到文件

我们不止可以将log信息打印到屏幕上,还可以将日志文件输出到文件中
调用basicConfig()时使用filename参数会创建一个FileHandler并对logger进行设置。logging模块至少包含15种handler 包括电子邮件、Web服务器
basicConfig还可以传入format字段,可以指定格式

import logging
fmt = '%(asctime) s %(levelname) s %(lineno) s %(message) s'
logging.basicConfig(level='DEBUG', filename='log_file.log', format=fmt)
logging.info('logging info')
logging.error('logging error')
logging.debug('logging debug')
logging.warning('logging warning')
logger_a = logging.getLogger('logger')
logger_a.debug('logger debug')
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容