logging库的使用
在日常的Python的代码编写中,log的输出可以帮助我们了解Python的运行情况,logging库提供了在Python中方便写log的方法。
log输出到屏幕的代码如下:
#!/usr/local/bin/python
#-*- coding:utf-8 -*-
import logging
count = 1
logging.basicConfig(level=logging.DEBUG)
logging.debug("Test Case: %d" % count)
logging.info(2)
logging.warn("Test Case: %d" % count)
logging.error(4)
logging.critical(5)
值得注意的是,logging对输出的信息由低到高分为了5类等级,分别是debug,info,warn,error,critical,只有当前的输出等级不小于在logging.basicconfig中设置的level参数才能输出。
log输出到文件的代码如下:
#!/usr/local/bin/python
#-*- coding:utf-8 -*-
import logging
if "__main__" == __name__:
logger = logging.getLogger("Test") # 定义一个logger
log_path = "./log.txt" # 输出的文件位置
fh = logging.FileHandler(log_path, mode="w") # 定义一个文件的logger handler, 模式默认为在尾部添加,"w"会先删除内容,然后再写log
fh.setLevel(logging.WARN) # 设置输出的级别,只有级别不低于该级别的才会输出
# 创建输出格式
fmt = "%(asctime)s %(filename)s[line:%(lineno)d]: %(levelname)s %(message)s"
datefmt = "%a %d %b %Y %H:%M:%S"
formatter = logging.Formatter(fmt, datefmt) # 获得输出格式对象
fh.setFormatter(formatter) # 为handler设置输出的格式
logger.addHandler(fh) # 为logger指定handler
logger.debug("debug message")
logger.warn("warn essage")
logger.error("error message")
运行后在log.txt文件中会看到warn和error输出的信息,而没有debug的信息