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. python中列表,元组,字符串如何互相转换

    python中有三个内建函数:列表,元组和字符串,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示: >>> s = "xxxxx ...

  2. ALAsset,ALAssetsLibrary,ALAssetsgroup常见属性及用法

    转载自  http://www.cnblogs.com/javawebsoa/archive/2013/07/19/3201246.html ALAssetsgroup --------------- ...

  3. 数据持久化之sharedpreference的使用

    要将数据持久化到手机移动设备有多种方法,其中有一种是通过sharedpreference来实现. 首先将sharedpreference初始, private SharedPreferences sp ...

  4. Spring Controller参数为空串的处理方式

    控制器参数为String类型 Spring框架接收到传入的空串后,此参数被赋值为空串,不为null. 控制器参数为非String类型 Spring框架接收到传入的空串后,此参数被赋值为null.

  5. sql,mybatis,javascript分页功能的实现

    用三种不同的方法实现多数据的分页功能.原生sql和mybatis的操作需要每次点击不同页数时都发送http请求,进行一次数据库查询,如果放在前端页面写js语句则不需要每次都请求一次,下面是三种不同的方 ...

  6. 我的VisualStudio工具箱

    代码神器 ReSharper 毫无疑问,我认为R#是目前VS插件中有史以来最强大的,各种快捷生成代码的方式, 代码重构, 很多很多的快捷键支持.相比较原生VS的,VS的智能功能简直弱爆了. dimec ...

  7. python flask 部署

    flask在开发的时候,经常启动本身进行调试(本身可以设置监听的端口,例如 在app.run(port=8088),当然默认不设置端口为5000). 但生产环境经常使用uswgi充当flask的宿主, ...

  8. hdu 5587 Array 数学题

    Array Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5587 De ...

  9. Codeforces Round #327 (Div. 2) E. Three States BFS

    E. Three States Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/591/probl ...

  10. Codeforces Round #277 (Div. 2) A. Calculating Function 水题

    A. Calculating Function Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/4 ...