python基础——logging模块

logging模块默认是使用warning等级,所以在不指定等级的情况下只有warning及其以上才会在终端中打印
import logging 

logging.debug("aaa")
logging.info("bbb")
logging.warning("ccc")
logging.error("ddd")
logging.fatal("eee")

终端输出:
WARNING:root:ccc
ERROR:root:ddd
CRITICAL:root:eee

python提供了一个配置log文件的接口logging.basicConfig,可以自行设置需要输出的日志等级,basicConfig的参数介绍:
level:设置日志级别,默认是logging.WARNING
filename:指定日志输出的文件名
filemode:指定日志文件的写入模式,默认是"a",以追加的方式写入

format:指定输出的格式和内容,参数如下
asctime:打印日志输出时间
name:用于记录调用的日志程序的名称
filename:打印当前执行程序名
levelname:打印日志输出等级名称
message:打印日志输出内容

import logging 


# 自行指定日志等级为info
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s")
logger = logging.getLogger(__name__)
logger.info("aaa")
logger.debug("bbb")  # 小于info等级的日志不会输出
logger.warning("ccc")

终端输出:
2020-02-14 12:07:09,314 - __main__ - INFO - aaa
2020-02-14 12:07:09,314 - __main__ - WARNING - ccc
把日志写入文件中
import logging

# 实例化一个logger
logger = logging.getLogger(__name__)
# 设置logger的等级
logger.setLevel(level=logging.INFO)  # 配置日志的最低等级,只有符合该等级的才会分配到handler
# 实例化一个句柄
handler = logging.FileHandler("log.txt")  # 日志文件路径
handler.setLevel(level=logging.INFO)  
# 实例化一个formatter
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")  # 输出到文件的格式
handler.Formatter(formatter)  # 设置内容格式模板
logger.addHandler(handler)  # 句柄添加

logger.info("start")
logger.debug("doing debug")
logger.warning("doing warning")
logger.error("finish")

输出:(debug不会输出)
2020-02-14 21:53:43,422 - __main__ - INFO - start
2020-02-14 21:53:43,422 - __main__ - WARNING - doing warning
2020-02-14 21:53:43,422 - __main__ - INFO - finish
发布了36 篇原创文章 · 获赞 2 · 访问量 937

猜你喜欢

转载自blog.csdn.net/zzrs_xssh/article/details/104309104