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. crontab读取环境变量方法

    crontab如果不注意的话早晚会出问题,而且这种问题一旦出一次,就会永远记得,因为这种问题很折腾人.                                                  ...

  2. 第二百四十天 how can I 坚持

    在家待了一天,晚上出去买了个帽子,还有买了点排骨炖着吃了... 玩了好多局游戏. 想搞个直播,不知道能不能玩的起来. 水平太菜了,明天去小米之家玩玩. 睡觉.

  3. poj 3026 Borg Maze (BFS + Prim)

    http://poj.org/problem?id=3026 Borg Maze Time Limit:1000MS     Memory Limit:65536KB     64bit IO For ...

  4. jquery easyui的异步tree

    1.创建一个简单的tree 结果如图: <script> $(function(){ $('#tt').tree(){ url:'要提交的url地址', checkbox:true, li ...

  5. [iOS基础控件 - 6.10.7] UIWindow

    A.UIWindow概念 1.继承UIView,是一种特殊的UIView 2.通常一个APP只有一个UIWindow 3.iOS程序启动后,创建的第一个视图就是UIWindow 4.没有UIWindo ...

  6. react native 遇到的坑

    1.项目中新加入组件,应执行npm install命令 2.项目执行react-native run-android 报错,应进入android目录,执行gradlew.bat clean命令 3.L ...

  7. UI进阶 SQLite错误码

    #define SQLITE_OK 0 /* 成功 | Successful result */ /* 错误码开始 */ #define SQLITE_ERROR 1 /* SQL错误 或 丢失数据库 ...

  8. android Studio gradle so的加载

    最近在使用Android Studio开发android项目,我的项目是由gradle构建的,gradle的优势文档上有说明,当你不断使用中,我越来越发现,太TMD方便啦,优势大大的明显. 打包,功能 ...

  9. Kicad使用经验谈

    最近开始学习使用Linux上的开源软件KiCad来绘制电路图和PCB.学习这个还是比较快的,用了两天了,觉得还是蛮方便的. 在这两天的使用以及今后的使用过程中,一定会有很多想要谈的.所以,就写下这篇博 ...

  10. disque概要

    做项目过程接触到disque,记录一下. disque是redis之父开源的基于内存的分布式作业队列,用c语言实现的非阻塞网络服务器. disque的设计目标:Its goal is to captu ...