python logging 的学习 比眉伴天荒 2021-12-19 03:53 168阅读 0赞 首先自己得有个对日志的整体概念,日志的作用是啥,日志是如何形成的。 典型的日志记录的步骤是这样的: 1. 创建logger 2. 创建handler 3. 定义formatter 4. 给handler添加formatter 5. 给logger添加handler 首先需要实现的是一个log的demo的版本,基本所有的log.py都是它的变形: import logging # 1、创建一个logger logger = logging.getLogger('mylogger') logger.setLevel(logging.DEBUG) # 2、创建一个handler,用于写入日志文件 fh = logging.FileHandler('test.log') fh.setLevel(logging.DEBUG) # 再创建一个handler,用于输出到控制台 ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) # 3、定义handler的输出格式(formatter) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # 4、给handler添加formatter fh.setFormatter(formatter) ch.setFormatter(formatter) # 5、给logger添加handler logger.addHandler(fh) logger.addHandler(ch) 第一:需要关注的等级的问题: log的等级分为5个等级排序:CRITICAL > ERROR > WARNING > INFO > DEBUG 默认生成的root logger的level是logging.WARNING,低于该级别的就不输出了。或者不设置日志的级别:则所有的信息都输出: 例子1: import logging # 引入logging模块 # 将信息打印到控制台上 logging.debug(u"苍井空") logging.info(u"麻生希") logging.warning(u"小泽玛利亚") logging.error(u"桃谷绘里香") logging.critical(u"泷泽萝拉") 输出: WARNING:root:小泽玛利亚 ERROR:root:桃谷绘里香 CRITICAL:root:泷泽萝拉 例子2: import logging # 引入logging模块 logging.basicConfig(level=logging.NOTSET) # 设置日志级别 logging.debug(u"苍井空") logging.info(u"麻生希") logging.warning(u"小泽玛利亚") logging.error(u"桃谷绘里香") logging.critical(u"泷泽萝拉") logging.debug(u"如果设置了日志级别为NOTSET,那么这里可以采取debug、info的级别的内容也可以显示在控制台上了") 输出: DEBUG:root:苍井空 INFO:root:麻生希 WARNING:root:小泽玛利亚 ERROR:root:桃谷绘里香 CRITICAL:root:泷泽萝拉 DEBUG:root:如果设置了日志级别为NOTSET,那么这里可以采取debug、info的级别的内容也可以显示在控制台上了 第二:*format常用格式说明 :* # %(levelno)s: 打印日志级别的数值 %(levelname)s: 打印日志级别名称 %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv\[0\] %(filename)s: 打印当前执行程序名 %(funcName)s: 打印日志的当前函数 %(lineno)d: 打印日志的当前行号 %(asctime)s: 打印日志的时间 %(thread)d: 打印线程ID %(threadName)s: 打印线程名称 %(process)d: 打印进程ID %(message)s: 打印日志信息 # 转载: [https://www.cnblogs.com/CJOKER/p/8295272.html][https_www.cnblogs.com_CJOKER_p_8295272.html] [https://www.cnblogs.com/anpengapple/p/5048123.html][https_www.cnblogs.com_anpengapple_p_5048123.html] [https_www.cnblogs.com_CJOKER_p_8295272.html]: https://www.cnblogs.com/CJOKER/p/8295272.html [https_www.cnblogs.com_anpengapple_p_5048123.html]: https://www.cnblogs.com/anpengapple/p/5048123.html
还没有评论,来说两句吧...