简介:

日志是一种可以追踪某些软件运行时所发生事件的方法。软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情。不同的事件,被区分在不同的等级中,故通过log分析,可以很轻易地分析得到该应用的健康状况,及时发现问题并快速定位、解决问题,补救损失。python自带的模块logging可以实现日志的记录功能,其下的日志级别共分为五个级别,级别顺序为debug<info<warning<error<critical。logging模块指定日志记录器的日志级别,只有级别大于或等于该指定日志级别的日志记录才会被输出,小于该等级的日志记录将会被丢弃。

日志的模块使用

  • 定义模块级别函数:用于指定触发这个级别所报出的信息,通用方法是logging.log(level,*args,**kwargs),参数level是日志的等级。
  • 对日志进行基本配置:logging.basicConfig(**kwargs),可选参数如下:
  • 日志的四大组件:loggers、handlers、filters、formatters。四大组件的应用在下面会介绍。

logging模块提供的模块级别的那些函数实际上也是通过这几个组件的相关实现类来记录日志的,只是在创建这些类的实例时设置了一些默认值。

  • 格式字符化输出:formatters控制日志信息输出格式,在这个模块内已经封装好了自己的格式,如下图所示:

代码实例

经过简单配置,输出日志记录。

import logging
logging.basicConfig(level= logging.DEBUG,filename='basic.log',format= '时间:%(asctime)s,''日志级别:%(levelname)s,''日志信息:%(message)s,''日志名字:%(name)s')logging.debug("This is a debug log.")
logging.info("This is a info log.")
logging.warning("This is a warning log.")
logging.error("This is a error log.")
logging.critical("This is a critical log.")
时间:2018-10-11 16:46:45,355,日志级别:DEBUG,日志信息:This is a debug log.,日志名字:root
时间:2018-10-11 16:46:45,355,日志级别:INFO,日志信息:This is a info log.,日志名字:root
时间:2018-10-11 16:46:45,355,日志级别:WARNING,日志信息:This is a warning log.,日志名字:root
时间:2018-10-11 16:46:45,356,日志级别:ERROR,日志信息:This is a error log.,日志名字:root
时间:2018-10-11 16:46:45,356,日志级别:CRITICAL,日志信息:This is a critical log.,日志名字:root

可以发现默认情况下,日志名字为root。

利用四大组件,认识日志处理流程。

  1. 日志初始化
  2. 设置日志级别
  3. 定义handler:主要有StreamHandler和FileHandler。
  4. 控制格式化输出
  5. 启动日志文件
import logging
logger = logging.getLogger("test")#初始化#设置级别
logger.setLevel(logging.DEBUG)#定义handler#控制台输出
sh = logging.StreamHandler()
sh.setLevel(logging.ERROR)#文件输出
fh = logging.FileHandler('test.log')
fh.setLevel(logging.DEBUG)#格式化输出
format = logging.Formatter('时间:%(asctime)s,''日志级别:%(levelname)s,'#逗号写在里面'日志信息:%(message)s,''日志名字:%(name)s'
)
#将格式化传到控制台和文件
sh.setFormatter(format)
fh.setFormatter(format)#启动日志文件
logger.addHandler(sh)
logger.addHandler(fh)if __name__ == '__main__':def f(a):#日志记录函数try:res = 5.0/alogger.info("正常运行")except Exception as e:logger.error(e)f(0)
时间:2018-10-11 16:55:57,156,日志级别:ERROR,日志信息:float division by zero,日志名字:test

简单点说就是:日志器(logger)是入口,真正干活儿的是处理器(handler),处理器(handler)还可以通过过滤器(filter)和格式器(formatter)对要输出的日志内容做过滤和格式化等处理操作。

转载于:https://www.cnblogs.com/longwhite/p/10397703.html

python——logging模块相关推荐

  1. 关于使用python logging模块的几点总结

    关于使用python logging模块的几点总结 使用python的标准日志模块logging可以非常方便地记录日志.Python日志系统非常丰富.添加结构化或非结构化日志输出到python代码,写 ...

  2. python logging模块使用

    python logging模块使用 logging模块 日志记录的重要性 在开发过程中,我们可以printf或者Debug来排查问题. 但是在生产环境中(黑盒环境)出现问题,我们并不能知道在运行的环 ...

  3. python logging模块使用_python logging模块使用

    近来再弄一个小项目,已经到收尾阶段了.希望加入写log机制来增加程序出错后的判断分析.尝试使用了python logging模块. #-*- coding:utf-8 -*- importloggin ...

  4. Python logging模块切分和轮转日志

    Python logging模块切分和轮转日志 logging 模块可以实现日志的输出和写入文件,但实际工作中,对于日志是使用不仅限于输出那么简单. logging基本使用参考:https://blo ...

  5. Python logging模块的基本使用

    Python logging模块的基本使用 logging 模块是 Python 内置的标准模块,用于输出代码日志. 一.logging 模块简介 在工作中,运行的代码量是非常大的,为了更方便的管理代 ...

  6. python调用微信客户端_python模拟微信客户端打开链接Python Logging 模块研究

    背景 在一个新的项目里面加入了日志功能,想自己写一个,但是一个偶然的机会,通过google发现Python内建了一个非常强大的日志(log)模块:logging.粗略的研究了一下,下面是我的一些心得札 ...

  7. python logging模块-写日志、log回滚

    python包/模块,专栏总目录: 1.python自定义模块 2.python模块调用顺序 3.python logging模块 4.python定义跨模块的全局变量 1.logging模块简介 l ...

  8. Python Logging模块实现运行的程序写入 日志

    参考文章:  Python使用logging模块实现打印log到指定文件的方法_python_脚本之家 https://www.jb51.net/article/146909.htm 步骤: (1) ...

  9. python logging模块的作用_Python 日志模块logging分析及使用-2

    本文作为Python日志模块的补充,主要介绍日志回滚RotatingFileHandler和TimedRotatingFileHandler的使用,以及其所带来的问题.Logger对象的日志等级是如何 ...

  10. Python logging模块日志存储位置踩坑

    问题描述 项目过程中写了一个小模块,设计到了日志存储的问题,结果发现了个小问题. 代码结构如下: db.py run.py 其中db.py是操作数据库抽象出来的一个类,run.py是业务逻辑代码.两个 ...

最新文章

  1. 受益一生的15个学习习惯
  2. Android 实现图片反转
  3. spool命令、创建一个表,创建并且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站
  4. CSRF简单介绍及利用方法-跨站请求伪造
  5. Spring Boot笔记-@Scheduled(cron=““)设置调度任务
  6. Vue.js系列之四计算属性和观察者
  7. 【转】工作站和服务器的区别
  8. DPDK l2fwd收发包思维导图
  9. Java代码发送POST请求
  10. 计算机组成原理课程实践,计算机组成原理课程实践教学探索.PDF
  11. iOS 禁止横屏的解决方案
  12. 在AndroidStudio中使用ARCore
  13. CAD用直线绘制矩形
  14. 概率密度函数曲线及绘制
  15. mysql路由和MAH
  16. Onboard SDK文档
  17. 最简单的python使用ddddocr模块在线识别验证码后登录
  18. 【Oracle】6.JDBC
  19. 套接字 I/O 模型 WSAEvent
  20. DSP28335的中断配置

热门文章

  1. 信息系统项目管理师-信息系统安全管理核心知识思维脑图
  2. Centos中Redis的下载编译与安装(超详细)
  3. Thymelaf中使用select进行消息的回显
  4. Navicat连接sqlserver提示:未发现数据源名并且未指定默认驱动程序
  5. Ubuntu下pip3的安装、升级、卸载
  6. 一个高成熟度组织的规程和指南目录
  7. 十分钟学习nginx
  8. oracle转64编码,[转]将oracle数据库的编码变成utf-8
  9. huggingface实操_Transformers 简介(上)
  10. 丰农控股 CIO 王轶枭:万亿级农资市场,神策数据助力大丰收筑就数据驱动核心竞争力...