例1:默认的log_colors

import logging
from logging.handlers import RotatingFileHandler
from colorlog import ColoredFormatter

#第一步:创建一个日志收集器logger
logger = logging.getLogger("autotest")

#第二步:修改日志的输出级别
logger.setLevel(logging.DEBUG)

#第三步:设置输出的日志内容格式
fmt = "%(log_color)s%(asctime)s  %(log_color)s%(filename)s  %(log_color)s%(funcName)s [line:%(log_color)s%(lineno)d] %(log_color)s%(levelname)s %(log_color)s%(message)s"
datefmt = '%a, %d %b %Y %H:%M:%S'

formatter = ColoredFormatter(fmt=fmt,
                       datefmt=datefmt,
                       reset=True,
                       secondary_log_colors={},
                       style='%'
                       )

#设置输出渠道--输出到控制台
hd_1 = logging.StreamHandler()
#在handler上指定日志内容格式
hd_1.setFormatter(formatter)

#第五步:将headler添加到日志logger上
logger.addHandler(hd_1)

#第六步:调用输出方法
logger.debug("我是debug级别的日志")
logger.info("我是info级别的日志")
logger.warning("我是warning级别的日志")
logger.critical("我的critical级别的日志")
logger.error("我是error级别的日志输出")

默认的color_colors的值为:

代码运行结果:

例2:自定义log_colors

import logging
from logging.handlers import RotatingFileHandler
from colorlog import ColoredFormatter

#第一步:创建一个日志收集器logger
logger = logging.getLogger("autotest")

#第二步:修改日志的输出级别
logger.setLevel(logging.DEBUG)

#第三步:设置输出的日志内容格式
fmt = "%(log_color)s%(asctime)s  %(log_color)s%(filename)s  %(log_color)s%(funcName)s [line:%(log_color)s%(lineno)d] %(log_color)s%(levelname)s %(log_color)s%(message)s"
datefmt = '%a, %d %b %Y %H:%M:%S'

formatter = ColoredFormatter(fmt=fmt,
                       datefmt=datefmt,
                       reset=True,
                       log_colors={
                               'DEBUG':'cyan',
                               'INFO': 'green',
                            'WARNING':'yellow',
                            'ERROR': 'red',
                            'CRITICAL':'red,bg_white'
                            },
                       secondary_log_colors={},
                       style='%'
                       )

#设置输出渠道--输出到控制台
hd_1 = logging.StreamHandler()
#在handler上指定日志内容格式
hd_1.setFormatter(formatter)

#第五步:将headler添加到日志logger上
logger.addHandler(hd_1)

#第六步:调用输出方法
logger.debug("我是debug级别的日志")
logger.info("我是info级别的日志")
logger.warning("我是warning级别的日志")
logger.critical("我的critical级别的日志")
logger.error("我是error级别的日志输出")

代码运行结果:

例3:secondary_log_color的使用

import logging
from logging.handlers import RotatingFileHandler
from colorlog import ColoredFormatter

#第一步:创建一个日志收集器logger
logger = logging.getLogger("autotest")

#第二步:修改日志的输出级别
logger.setLevel(logging.DEBUG)

#第三步:设置输出的日志内容格式
fmt = "%(log_color)s%(asctime)s  %(log_color)s%(filename)s  %(log_color)s%(funcName)s [line:%(log_color)s%(lineno)d] %(log_color)s%(levelname)s %(message_log_color)s%(message)s"
datefmt = '%a, %d %b %Y %H:%M:%S'

formatter = ColoredFormatter(fmt=fmt,
                       datefmt=datefmt,
                       reset=True,
                       secondary_log_colors={
                           'message': {
                               'ERROR': 'red',
                               'CRITICAL': 'yellow',
                               'WARNING': 'green'
                           }
                       },
                       style='%'
                       )

#设置输出渠道--输出到控制台
hd_1 = logging.StreamHandler()
#在handler上指定日志内容格式
hd_1.setFormatter(formatter)

#第五步:将headler添加到日志logger上
logger.addHandler(hd_1)

#第六步:调用输出方法
logger.debug("我是debug级别的日志")
logger.info("我是info级别的日志")
logger.warning("我是warning级别的日志")
logger.critical("我的critical级别的日志")
logger.error("我是error级别的日志输出")

代码运行结果:

colorlog的三个例子的更多相关文章

  1. css通用小笔记02——浮动、清除(三个例子)

    css中通常会用到浮动与清除,也是一个必须掌握的知识点,概念性的东西不多说,下面举几个例子,来说明它的用法:1.文字环绕效果  2.多个div并排显示 3.清除浮动(默认显示) 一.文字环绕效果: h ...

  2. 统计学习方法笔记--EM算法--三硬币例子补充

    本文,意在说明<统计学习方法>第九章EM算法的三硬币例子,公式(9.5-9.6如何而来) 下面是(公式9.5-9.8)的说明, 本人水平有限,怀着分享学习的态度发表此文,欢迎大家批评,交流 ...

  3. keras神经网络三个例子

    keras构造神经网络,非常之方便!以后就它了.本文给出了三个例子,都是普通的神经网络 例一.离散输出,单标签.多分类 例二.图像识别,单标签.多分类.没有用到卷积神经网络(CNN) 例三.时序预测, ...

  4. golang关键字select的三个例子, time.After模拟socket/心跳超时

    golang关键字select的三个例子, time.After模拟socket/心跳超时   例子1 select会随机选择一个可执行的case   // 这个例子主要说明select是随机选择一个 ...

  5. TControl的显示函数(5个非虚函数,4个虚函数)和三个例子的执行过程(包括SetParent的例子)

    // 9个显示函数 procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); virtual; // 虚函数,important 根据父控 ...

  6. Flask--第三个例子,写一个接口,该接口返回html前端页面,模板的使用

     将接口数据返回至html前端页面有两种方法 方法一: 1 @app.route('/index',methods=['get']) 2 def open_index(): 3 page=open(' ...

  7. jquery第二期:三个例子带你走进jquery

    jquery是完全支持css的,我们举个例子来看看使用jquery的方便之处,这功劳是属于选择器的: 例1: <!DOCTYPE html PUBLIC "-//W3C//DTD HT ...

  8. 【Python】三个例子教你写代码

    这篇文章包括用Python编写的斐波那契数列,三位数的水仙花数和百钱买百鸡的基础代码: (一)斐波那契数列: ''' def hanshu(n): n_1 = 1 n_2 = 1 m = n sumn ...

  9. this 指向问题, 三个例子

    'use strict'; var a = 20; function foo () { var a = 1; var obj = { a: 10, c: this.a + 20, fn: functi ...

随机推荐

  1. 第03章—打造RESTful风格API

    spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxia ...

  2. jQuery EasyUI 简介

    简介 jQuery EasyUI 是一个基于 jQuery 的框架,集成了各种用户界面插件. 特点: ①easyui 是一个基于 jQuery 的框架,集成了各种用户界面插件. ②easyui 提供建 ...

  3. scrapy item

    item item定义了爬取的数据的model item的使用类似于dict 定义 在items.py中,继承scrapy.Item类,字段类型scrapy.Field() 实例化:(假设定义了一个名 ...

  4. 在容器最前面添加DOM元素 parent.insertBefore(new, parent.children[0])

    //判断容器当前有没有子级元素,如果没有直接appendChild就行了; if (p.children[0]) { p.insertBefore(span, p.children[0]); } el ...

  5. shader常用

    1 模型空间转裁剪空间 UnityObjectToClipPos(v.vertex) 2 模型空间转世界空间 mul( unity_ObjectToWorld, v.vertex ) 3 雾三件套 U ...

  6. 关于session的常用用法

    (一)django有四中session实现方式 1.数据库(database-backed sessions) 2.缓存(cached sessions) 3.文件系统(file-based sess ...

  7. HDU1838:Chessboard(线性dp)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1838 这题也挺不错的.首先题目说了,棋盘的右下角一定是'1',另外棋盘里面至少包含一个1,所以最小值是1, ...

  8. curl: (60) SSL certificate problem: unable to get local issuer certificate

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  9. C++异常安全、copy and swap

    异常安全的代码是指,满足两个条件 1异常中立性 : 是指当你的代码(包括你调用的代码)引发异常时,这个异常 能保持原样传递到外层调用代码.(异常中立,就是指任何底层的异常都会抛出到上层,也就相当于是异 ...

  10. wtforms Form实例化流程(源码解析)

      class LoginForm(Form): #首先执行后得到的结果是UnboundField()对象 name=simple.StringField( label='用户名', validato ...