之前项目中用的是工具组做的日志模块,用的久了,脑袋里就懒得思考这是如何实现的。毕竟菊厂的开发,忙成狗,不是我所负责的自然只是看看会用就行了。最近开始奋发图强,自然要好好看下基础的东西。

以前做java开发时候知道java有个log4j的日志模块,用着还不错。我在python中找到它有自己的日志模块logging,另外搜索log4python,发现简书上有人对这个评价一般,有贴出来代码和配置,所以主要还是先看python自带的。

importlogging.handlers

LOG_FORMAT= "%(asctime)s - [%(levelname)s] - %(message)s"

#logging.basicConfig(filename="test.log", level=logging.DEBUG, format=LOG_FORMAT)

my_logger = logging.getLogger("my_loger")

my_logger.setLevel(logging.DEBUG)

console_handler=logging.StreamHandler()

log_format=logging.Formatter(LOG_FORMAT)

console_handler.setFormatter(log_format)

file_handler= logging.FileHandler("my_test.log",encoding="utf-8")

my_logger.addHandler(console_handler)

my_logger.addHandler(file_handler)if __name__ == "__main__":

my_logger.debug("this is debug log")

my_logger.info("this is info log")

通过自带的logging模块来看,日志可以通过不同的handler同时打印到控制台和文件,而且各自用各自自己的日志格式,所以,是可以满足日常开发使用的。

在使用时候,可以通过logging.basicConfig来全局配置,后续用logging.debug()这种语句来打印日志;也可以用logging.getLogger实例化一个日志对象,添加不同的handler,后面再用logging实例化出来的对应打印。

在控制台打印上,可以用StreamHandler类,默认打印到std.err; 打印到文件中,可以用FileHandler,或者更实用的RotatingFileHandler,按照官方文档所说,RotatingFileHandler在日志文件达到了指定大小之后可以分割文件。

python日志_python 日志模块相关推荐

  1. python处理日志_python日志处理(logging模块)

    文章非原创,搬运自@云游道士博客: 另外,这篇文章可以作为参考: 本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用 ...

  2. python日志_python日志处理

    一.日志概念 日志是一种可以追踪某些软件运行时所发生事件的方法. 软件开发人员可以向他们的代码中 调用日志记录相关的方法来表明发生了某些事情. 一个事件可以用一个可包含可选变量数据 的消息来描述. 此 ...

  3. python电话模块_Python常用模块

    1.os模块 os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果. os.name:返回当前操作系统名称('posix', 'nt', 'os2' ...

  4. python连接linux获取日志_Python 日志记录模块logging的使用

    shell当中记录log,满眼花花的重定向符合,看着很不爽有没有!我喜欢Python,就是喜欢这种买个手电筒,备用电池都准备好了的感觉.logging模块很简单,导入模块,定义日志格式.代码中就可以通 ...

  5. python多线程怎么写日志_Python日志记录在多进程下的使用

    1. 问题描述 项目中,使用RotatingFileHandler根据日志文件大小来切分日志.设置文件的MaxBytes为1GB, backupCount大小为5. 经查看,发现日志文件的大小均小于1 ...

  6. python报错输出到日志_Python 日志配置总结

    日志是程序调试的利器,通过日志来解析获取数据,线上问题通过日志分析和定位等,用途多种多样.Python 作为当前常用的一门开发语言,国内很多开发者对其的使用极其粗糙,写法较为随意,受开发者本身熟悉的语 ...

  7. python报错输出到日志_Python日志记录和子进程输出和错误流

    基于Adam Rosenfield's code,你可以 >使用select.select来阻止,直到有要读取的输出 proc.stdout或proc.stderr, >然后读取并记录该输 ...

  8. python 程序停止打印日志_Python日志打印

    简单示例 import sys import ctypes import logging import logging.handlers reload(sys) sys.setdefaultencod ...

  9. cpickle支持的python版本_Python cPickle模块(转)

    持久性就是指保持对象,甚至在多次执行同一程序之间也保持对象.通过本文,您会对 Python对象的各种持久性机制(从关系数据库到 Python 的 pickle以及其它机制)有一个总体认识.另外,还会让 ...

最新文章

  1. bazel源码编译Tensorflow
  2. Hive Lateral View、视图、索引
  3. adb devices 找不到设备的解决方法
  4. 一文教你分清持续集成,持续交付,持续部署!
  5. 【已解决】iView-admin Editor 组件 绑定默认值问题
  6. 141.环形链表(力扣leetcode)博主可答疑该问题
  7. win10 uwp 渲染原理 DirectComposition 渲染
  8. Hello软件项目相关功能测试点
  9. 通知:大数据技术架构知识库公开
  10. CSS之颜色和背景的属性设置
  11. Python爬虫实战:爬取拉勾网并对其进行数据分析
  12. Linux .swp文件恢复
  13. 【自制小工具】快速批量查询IP归属地(自动去重、按国内外汇总,并智能识别出错误IP)
  14. 使用java实现路由协议_如果使用OSPF作为路由协议,那么( )【选两项】
  15. SpringBoot 整合Flyway 常见问题【科普解决】
  16. 树冠点云投影面积计算(凸包法)
  17. 年入100万是个梦,有3座大山需要翻越
  18. Android高中低端机整理,高中低端都有 各品牌新上市安卓机汇总
  19. html手机和电脑端网页效果相同,关于手机网页和电脑网页相同内容会不会重复收录的问题...
  20. Python 3 Keras YOLO v3解析与实现

热门文章

  1. 英语学习笔记2019-12-06
  2. 安卓案例:在同一Activity里切换Fragment
  3. 织梦charset.func.php,织梦程序百度php主动推送代码,亲测可用!
  4. 定量库存控制模型_经济订货批量不是最终的订货批量,计算订货批量的最高库存定量法...
  5. e300氛围灯哪里调节_黑色的奔驰E300有了亚光膜的加持 一出场就惊艳四座
  6. 利用计算机打字教学设计,第6课 争当打字小能手教学设计
  7. 【Level 08】U07 Mixed Feelings L2 Let's go shopping
  8. 【英语学习】【Daily English】U10 Education L02 I'm not a pushy parent
  9. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (14) - 读存操作写存操作
  10. struts2漏洞_Apache Struts2057远程代码执行漏洞复现