logging的日志分为5个级别分别为debug(), info(), warning(), error(), critical()

先来看一下简单的代码:

logging.basicConfig(filename='example.log', level=logging.INFO, format='%(asctime)s %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
logging.warning('is when this event was logged.')

filename 是指日志文件的名称,可以带上路径,代码中是当前目录下的example.log文件;level是指info以上级别的日志,format就是格式化日志了:以‘日期时间  日志内容’的格式记录, datafmt就是格式化日志中的时间。

logging.warnging() 是将一条warning日志写入日志, 打开example.log日志看一下:

2016-03-02 12:17:41 is when this event was logged.
2016-03-22 11:34:51 is when this event was logged.

看到日志已经成功记录,而且格式都是指定的格式。

而更多的时候,我们不只是将日志记录到文件这么简单,我们需要的是将日志记录到文件的同时输出到屏幕上:

#创建logger
logger = logging.getLogger("TEST-LOG") #这里的TEST-lOG在后面会用到,这个是自定义的
logger.setLevel(logging.DEBUG) #全局的日志级别 #创建屏幕输出
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG) #屏幕输出的级别 #创建文件处理和级别
fh = logging.FileHandler("access.log") #日志文件
fh.setLevel(logging.WARNING) #写入日志的级别 #创建日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') #name就是TEST-LOG #添加格式
ch.setFormatter(formatter)
fh.setFormatter(formatter) #添加ch, fh到logger
logger.addHandler(ch)
logger.addHandler(fh) #写入日志
logger.debug("debug message")
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')

在上面代码中,有一个全局的日志级别,而屏幕和文件各自又定义了自己的日志级别,那是以哪个为准呢? 经过我的测试,我的理解是这样的:

5个级别的日志debug, info, waring,error, criticcal, 级别越高就越严重,谁的级别高就按谁的来。

python(6)-logging 日志模块的更多相关文章

  1. Python 中 logging 日志模块在多进程环境下的使用

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 中 logging 日志模块在多进程环境下的使用 使用 Pytho ...

  2. python的logging日志模块(一)

    最近修改了项目里的logging相关功能,用到了Python标准库里的logging模块,在此做一些记录.主要是从官方文档和stackoverflow上查询到的一些内容. 官方文档 技术博客 基本用法 ...

  3. 【python】logging日志模块写入中文编码错误解决办法

    一.问题: 使用python的logging模块记录日志,有时会遇到中文编码问题错误. 二.解决办法: 在logging.FileHandler(path) 中添加指定编码方式 encoding='u ...

  4. python的logging日志模块(二)

    晚上比较懒,直接搬砖了. 1.简单的将日志打印到屏幕   import logging logging.debug('This is debug message') logging.info('Thi ...

  5. Python之logging日志模块

    logging 用于便捷既然日志切线程安全的模块 vim log_test.py import logging logging.basicConfig(filename='log.log', form ...

  6. python的logging日志模块

    1. 简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('This is info mess ...

  7. Python中logging日志模块的使用

    参考https://www.cnblogs.com/CJOKER/p/8295272.html

  8. logging日志模块

    为什么要做日志: 审计跟踪:但错误发生时,你需要清除知道该如何处理,通过对日志跟踪,你可以获取该错误发生的具体环境,你需要确切知道什么是什么引起该错误,什么对该错误不会造成影响. 跟踪应用的警告和错误 ...

  9. python 自动化之路 logging日志模块

    logging 日志模块 http://python.usyiyi.cn/python_278/library/logging.html 中文官方http://blog.csdn.net/zyz511 ...

随机推荐

  1. Maven学习总结(一)——Maven入门

    原博文出自于:http://www.cnblogs.com/xdp-gacl/p/3498271.html 感谢! 一.Maven的基本概念 Maven(翻译为"专家"," ...

  2. overflow,white-space,text-overflow组合技,省略号!

    这是一个很简单的组合技,灵活应用省略号.

  3. CodeForces 489A SwapSort (选择排序法)

    SwapSort 题目链接: http://acm.hust.edu.cn/vjudge/contest/121332#problem/A Description In this problem yo ...

  4. 发布ASP.NET网站时的设置

    在ASP.NET网站开发完成之后,一般都要进行发布,然后再使用. 点击“目标位置”后的按钮可以选择将网站发布到的位置,有“本地.本机IIS.FTP站点.远程网站站点”四个选项. 另外,发布网站时还有四 ...

  5. Java 8 正式发布,新特性全搜罗

    经过2年半的努力.屡次的延期和9个里程碑版本,甲骨文的Java开发团队终于发布了Java 8正式版本. Java 8版本最大的改进就是Lambda表达式,其目的是使Java更易于为多核处理器编写代码: ...

  6. Selenium IDE 工具总结

    基本介绍: Selenium工具专门为WEB应用程序编写的一个验收测试工具. Selenium的核心:browser bot,是用JavaScript编写的. Selenium工具有4种:Seleni ...

  7. hibernate二级缓存ehcache

    与Session相对的是,SessionFactory也提供了相应的缓存机制.SessionFactory缓存可以依据功能和目的的不同而划分为内置缓存和外置缓存. SessionFactory的内置缓 ...

  8. ckeditor异常问题

    上传图片时点击上传按钮时,图片不能上传,有两种可能 1:采用ssh框架 , 上传图片对应的struts.xml没有配置<constant name="struts.action.exc ...

  9. 利用procdump+Mimikatz 绕过杀软获取Windows明文密码(转)

    Mimikatz现在已经内置在Metasploit’s meterpreter里面,我们可以通过meterpreter下载.但是你如果觉得还要考虑杀毒软件,绑定payload之类的东西太过复杂,我们可 ...

  10. Android访问WebService的两种方法

    首先解释一下WebService:WebService是一种基于SOAP协议的远程调用标准.通过WebService可以将不同操作系统平台,不同语言.不同技术整合到一起.详细见:http://baik ...