2 logging模块使用

2.1 基本使用

配置logging基本的设置,然后在控制台输出日志,

import logging

logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')

logger = logging.getLogger(__name__)

logger.info("Start print log")

logger.debug("Do something")

logger.warning("Something maybe fail.")

logger.info("Finish")

运行时,控制台输出,

2020-11-20 10:34:02,250 - --name-- - INFO - start print log

2020-11-20 10:34:02,251 - --name-- - WARNING - something maybe fail

2020-11-20 10:34:02,251 - --name-- - INFO - Finish

logging中可以选择很多消息级别,如:DEBUG,INFO,WARNING,ERROR,CRITICAL,通过赋予logger或者handler不同的级别,开发者就可以只输出错误信息到特定的记录文件,或者在调试时只记录调试信息。

将logger的级别改为DEBUG,

logging.basicConfig(level = logging.DEBUG,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')

再观察一下输出结果

从输出结果可以看到,输出了debug的日志记录

2020-11-20 10:35:29,566 - --name-- - INFO - start print log

2020-11-20 10:35:29,566 - --name-- - DEBUG - Do something

2020-11-20 10:35:29,567 - --name-- - WARNING - something maybe fail

2020-11-20 10:35:29,568 - --name-- - INFO - Finish

2.2 将日志写入到文件

2.2.1 将日志写入到文件

logger = logging.getLogger()

logger.setLevel(level=logging.INFO)

handler = logging.FileHandler('log.txt')

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

handler.setFormatter(formatter)

logger.addHandler(handler)

2.2.2 将日志同时输出到屏幕和日志文件

logger中添加StreamHandler,可以将日志输出到屏幕上

import logging

logger = logging.getLogger(__name__)

logger.setLevel(level = logging.INFO)

handler = logging.FileHandler("log.txt")

handler.setLevel(logging.INFO)

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

handler.setFormatter(formatter)

console = logging.StreamHandler()

console.setLevel(logging.INFO)

logger.addHandler(handler)

logger.addHandler(console)

logger.info("Start print log")

logger.debug("Do something")

logger.warning("Something maybe fail.")

logger.info("Finish")

可以在log.txt和控制台中看到

2020-11-20 10:59:29,934 - root - INFO - start print log

2020-11-20 10:59:29,934 - root - WARNING - Something maybe fail

2020-11-20 10:59:29,934 - root - INFO - finish

可以发现,logging有一个日志处理的主对象,其他处理方式都是通过addHandler添加进去,logging中包含的handler主要有如下几种,

handler名称:位置;作用

python中logger_python中的logger相关推荐

  1. 如何用python读取文本中指定行的内容

    如何用python读取文本中指定行的内容 搜索资料 我来答 分享 新浪微博 QQ空间 浏览 5284 次 查看全文 http://www.taodudu.cc/news/show-64036.ht ...

  2. Python 获取list 中指定元素出现的次数

    Python 获取list 中指定元素出现的次数 使用list 的count 方法 list_a = [1, 2, 3, 1, 4, 5, 1] print("1 出现的次数: %d&quo ...

  3. python删除指定位置的字符串_python去除区域 python删除字符串中指定位置字符

    python删除字符串中指定位置字符 原程序是这样的: ser = serial.Serial("/dev/ttyAMA0", 9600) def main字符串的话,你可以把他当 ...

  4. python 物理学中的应用_利用python求解物理学中的双弹簧质能系统详解

    前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...

  5. Python,OpenCV中的图像修复——cv2.inpaint()

    Python,OpenCV中的图像修复--cv2.inpaint 1. 效果图 2. 原理 3. 源码 参考 image inpainting 图像修改 这篇博客将介绍如何通过OpenCV中图像修复的 ...

  6. Python,OpenCV中的K均值聚类——K-Means Cluster

    Python,OpenCV中的K均值聚类 1. 效果图 2. 原理 2.1 什么是K均值聚类? 2.2 K均值聚类过程 2.3 cv2.kmeans(z, 2, None, criteria, 10, ...

  7. Python,OpenCV中的霍夫圆变换——cv2.HoughCircles()

    Python,OpenCV中的霍夫圆变换 1. 效果图 2. 源码 参考 这篇博客将学习如何使用霍夫圆变换在图像中找到圆圈,OpenCV使用cv2.HoughCircles()实现霍夫圆变换. cir ...

  8. Python,OpenCV中的非局部均值去噪(Non-Local Means Denoising)

    Python,OpenCV中的非局部均值去噪(Non-Local Means Denoising) 1. 效果图 2. 原理 3. 源码 2.1 单彩色图去噪 2.2 多连续彩色帧去噪 参考 这篇博客 ...

  9. Python,OpenCV中的K近邻(knn K-Nearest Neighbor)及改进版的K近邻

    Python,OpenCV中的K近邻(knn K-Nearest Neighbor)及改进版的K近邻 1. 效果图 2. 源码 参考 这篇博客将介绍将K-最近邻 (KNN K-Nearest Neig ...

最新文章

  1. 云炬创业政策学习笔记20210113
  2. Tex2Word vs Word2Tex
  3. 在Visual Studio 2010中创建多项目(解决方案)模板之关键步骤【四】
  4. 剑指Offer - 面试题62. 圆圈中最后剩下的数字(约瑟夫环 递推公式)
  5. 报表打印问题整体解决方案
  6. 苹果官宣春季发布会!不止有iPhone SE 3,还有紫色iPhone 13 Pro?
  7. mybatis多个foreach_mybatis的foreach 删除多条使用汇总
  8. atitit.提升开发效率---MDA 软件开发方式的革命(3)----自动化建表
  9. 并发编程学习之生产者消费者模式 - 使用Synchronized同步锁方式
  10. typroa 思维导图_Markdown转思维导图及Typora导出opml(pandoc)
  11. HR-FICO跨系统工资过账的一些知识点分享
  12. 计算机学机械制图吗,机械制图为什么这么难学?
  13. modelica语言学习心得
  14. 数据库异常用户sa登录失败_Sa登录失败
  15. centos7挂载大于10T及以上硬盘
  16. 离散-关系矩阵乘法运算
  17. 微信小程序添加删除线和下划线
  18. Kubernetes(k8s) YAML文件详解
  19. 南航里程每年清空吗_速度用!南航里程即将大量贬值!还有每年3张南航处卡!...
  20. js中的数据驱动(基础)

热门文章

  1. 新手做自媒体从哪开始?想做自媒体怎么进入?
  2. 13、数码相框编写程序之支持中文和课后作业
  3. 记一次入侵XP系统的经历
  4. python分组统计_python数据分析8:数据分组统计
  5. 数字水印技术:概念、应用及现状
  6. php正则匹配教程,PHP正则表达式学习(附录视频教程)
  7. 京津冀大数据协同处理中心启动
  8. webpack配置与优化
  9. oracle 行转列sql语句,行转列(sql行转列)
  10. 光的干涉衍射计算机模拟仿真技术,实验报告之仿真(光的干涉与衍射).doc