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. Android JNI之JAVA调用C/C++层

    转载请声明:原文转自:http://www.cnblogs.com/xiezie/p/5929996.html 一.java调用本地函数的开发步骤: 1.编写本地方法的类(可以说是用来叙述本地方法的类 ...

  2. 详解 jupyter notebook 集成 spark 环境安装

    来自: 代码大湿 代码大湿 1 相关介绍 jupyter notebook是一个Web应用程序,允许你创建和分享,包含活的代码,方程的文件,可视化和解释性文字.用途包括:数据的清洗和转换.数值模拟.统 ...

  3. SQL Server 跨库连接

    -- 开启组件 reconfigure reconfigure -- 关闭组件 reconfigure reconfigure -- 查询远程数据库 SELECT * FROM OPENDATASOU ...

  4. APACHE如何里一个站点绑定多个域名?用ServerAlias

    APACHE2如何里一个站点绑定多个域名?用ServerAlias以前很笨,要使多个域名指向同一站点总是这样写: <VirtualHost *:80>ServerAdmin i@kuigg ...

  5. 咏南CS多层插件式开发框架支持最新的DELPHI XE7

    DATASNAP中间件: 中间件已经在好几个实际项目中应用,长时间运行异常稳定,可无人值守: 可编译环境:DELPHI XE5~DELPHI XE7,无需变动代码: 支持传统TCP/IP方式也支持RE ...

  6. LoadRunner显示中文乱码的问题

    lr_convert_string_encoding Converts a string to a different encoding. Return Values:This function re ...

  7. Light oj 1234 - Harmonic Number

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1234 给你一个数n,让你求 这个要是直接算的话肯定TLE,要是用1e8的数组预处理存储 ...

  8. Lua学习笔记(四):表和数组

    表 在Lua中,表(table)是十分重要的一种数据结构,实际上Lua对于复杂数据类型也仅提供了表给我们,我们通过表可以实现我们需要的大部分重要的数据结构,比如数组. table类型实现了关联数组,关 ...

  9. Invoke-Express 执行多个批处理命令的函数

    function Mult_ping ($ips) { # $cmdline = "PIng" foreach ($ip in $ips) { $cmdline = "p ...

  10. AlertView with password

    1. setAlertViewStyle:UIAlertViewStyleSecureTextInput UIAlertView *alertView = [[UIAlertView alloc] i ...