例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. jenkins, docker-composer

      http://ju.outofmemory.cn/entry/240867

  2. 购物单问题—WPS使用excel

    ****     180.90       88折 ****      10.25       65折 ****      56.14        9折 ****     104.65        ...

  3. MariaDB备份和恢复

    一.为什么要备份? 灾难恢复:硬件故障.软件故障.自然灾害.黑客攻击.误操作: 测试二.要注意的要点: 能容忍最多丢失多少数据: 恢复数据需要多长时间内完成: 需要恢复哪些数据: (1)做还原测试,用 ...

  4. LCT(link cut tree) 动态树

    模板参考:https://blog.csdn.net/saramanda/article/details/55253627 综合各位大大博客后整理的模板: #include<iostream&g ...

  5. 我们为什么使用ORM

    我们为什么使用ORM? http://www.cnblogs.com/tansm/archive/2006/06/07/419927.html 博客园在推广ORM方面的确做了很大的贡献,很多的程序员开 ...

  6. ibatis $与#的区别

    在sql配置中比如in(#rewr#) 与in ($rewr$) 在Ibatis中我们使用SqlMap进行Sql查询时需要引用参数,在参数引用中遇到的符号#和$之间的区分为,#可以进行与编译,进行类型 ...

  7. insert获取主键、联合关联查询

    联合查询

  8. Ubuntu更新Hostname和hosts

    一.概述 Hostname 即主机名,一般存放在 /etc/hostname 中.hosts 即本地域名解析文件,存放在 /etc/hosts 中. 二.测试 2.1 hostname 2.2 hos ...

  9. HDOJ 1501 Zipper 【简单DP】

    HDOJ 1501 Zipper [简单DP] Problem Description Given three strings, you are to determine whether the th ...

  10. HackerRank - common-child【DP】

    HackerRank - common-child[DP] 题意 给出两串长度相等的字符串,找出他们的最长公共子序列e 思路 字符串版的LCS AC代码 #include <iostream&g ...