logging库
简介
logging库提供日志打印功能。
值得一提的是,不仅能打印到日志文件,还能打印到控制台。
日志级别
logging一共分为5个级别,从低到高依次为: DEBUG<INFO<WARNING<ERROR<CRITICAL
日志参数配置
配置接口logging.basicConf()
参数详解
控制日志的级别
level=logging.DEBUG (或者: logging.INFO / logging.WARNING / logging.ERROR / logging.CRITICAL)
假如level=logging.WARNING, 那么低于warning级别的日志都不会打印了。
设置日志名字(也设置了日志存放的路径)
filename="%s/test.log" % "/home/work"
设置文件模式
什么是文件模式呢?
filemode='w' (或者'a')
'w'表示什么意思?
'a'表示什么意思?
设置日志格式
控制了每一行日志都输出哪些字段
format="%(levelname)s-%(asctime)s-%(filename)s-%(funcName)s-%(lineno)d-%(message)s"
其中每个字段什么意思呢,可以参考下面
日志级别
%(levelno)s 日志级别数值
%(levelname)s 日志级别名字
%(asctime)s 日志打印时间
%(filename)s 文件名称
%(funcName)s 函数名称
%(lineno)d 行号
%(process)d 进程ID
%(thread)d 线程ID
%(threadName) 线程名称
%(message)s 打印日志信息
demo
(demo-1) 将日志输出在控制台
import logging logging.basicConfig(level=logging.INFO, filemode='a', format="[%(levelname)s][%(asctime)s]%(filename)s-%(lineno)d %(message)s") if __name__ == "__main__": logging.debug("this is debug message") logging.info("this is info message") logging.warning("this is warning message") logging.error("this is error message") logging.critical("this is critical message")
输出结果
[INFO][2018-10-19 11:05:10,013]run.py-29 this is info message [WARNING][2018-10-19 11:05:10,013]run.py-30 this is warning message [ERROR][2018-10-19 11:05:10,013]run.py-31 this is error message [CRITICAL][2018-10-19 11:05:10,013]run.py-32 this is critical message Process finished with exit code 0
(demo-2) 将日志输出在日志文件
logging.basicConfig(level=logging.INFO, filename="%s/run_info.log" % LOG_PATH, filemode='a', format="[%(levelname)s][%(asctime)s]%(filename)s-%(lineno)d %(message)s") if __name__ == "__main__": logging.debug("this is debug message") logging.info("this is info message") logging.warning("this is warning message") logging.error("this is error message") logging.critical("this is critical message")
输出结果
➜ log cat /Users/liurong07/Documents/code/QA/20181018/log/run_info.log [INFO][2018-10-19 11:07:34,372]run.py-25 this is info message [WARNING][2018-10-19 11:07:34,373]run.py-26 this is warning message [ERROR][2018-10-19 11:07:34,373]run.py-27 this is error message [CRITICAL][2018-10-19 11:07:34,374]run.py-28 this is critical message