python中的colorlog庫使用詳解
一. 描述
colorlog.ColoredFormatter是一個Python logging模塊的格式化,用于在終端輸出日志的顏色
二. 安裝
pip install colorlog
三. 用法
import colorlog
handler = colorlog.StreamHandler()
handler.setFormatter(colorlog.ColoredFormatter(
'%(log_color)s%(levelname)s:%(name)s:%(message)s'))
logger = colorlog.getLogger('example')
logger.addHandler(handler)
ColoredFormatter類帶著一些參數(shù):
- format:用于輸出日志的格式化字符串(必需)
- datefmt:一個傳遞給基類的可選的日期格式。見logging.Formatter
- reset:隱性的添加一個顏色重置代碼到消息輸出,除非輸出已經(jīng)結(jié)束。默認(rèn)為True
- log_colors:記錄級別名稱到顏色名稱的一個映射??梢栽赾olorlog.default_log_colors或下面的例子中找到默認(rèn)值
- secondary_log_colors:顏色名稱到log_colors樣式映射的映射,可以在格式化字符串中使用其定義的其他顏色。 請參考下面的示例
- style:在python3.2以以上可用。見logging.Formatter
可以向格式化字符串中添加參數(shù),根據(jù)日志級別選擇顏色轉(zhuǎn)義碼:
- log_color:返回與日志級別關(guān)聯(lián)的顏色
- <name>_log_color:如果格式化中配置了輔助顏色,則根據(jù)日志級別返回另一種顏色(請參考下面的secondary_log_colors)
在為日志級別配置顏色時,可以使用逗號連接多個轉(zhuǎn)義碼(但不能直接在格式字符串中使用)。 例如,black,bg_white將在白色背景上使用轉(zhuǎn)義碼表示黑色文本
下面是格式化字符串中可用的:
- {color},fg_ {color},bg_ {color}:前景色和背景色
- bold,bold_{color},fg_bold_{color},bg_bold_{color}:粗體/明亮的顏色
- reset:清除所有的格式(包括前景色和背景色)
可用的顏色名字是: black, red, green, yellow, blue, purple, cyan and white
四. 實例
1. ColoredFormatter用法
以下代碼使用每個參數(shù)的默認(rèn)值創(chuàng)建一個用于logging設(shè)置的ColoredFormatter
from colorlog import ColoredFormatter
formatter = ColoredFormatter(
"%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s",
datefmt=None,
reset=True,
log_colors={
'DEBUG': 'cyan',
'INFO': 'green',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'red,bg_white',
},
secondary_log_colors={},
style='%'
)
2. secondary_log_colors的使用
輔助日志顏色是一種根據(jù)日志級別選擇多種顏色的方法。 secondary_log_colors中的每個鍵都添加了一個可以在格式化字符串中使用的屬性(消息變?yōu)閙essage_log_color),并且具有與log_colors參數(shù)格式相同的對應(yīng)值
以下例子使用默認(rèn)日志顏色突出顯示級別名稱,并以紅色突出顯示ERROR和CRITICAL級別的日志信息
from colorlog import ColoredFormatter
formatter = ColoredFormatter(
"%(log_color)s%(levelname)-8s%(reset)s %(message_log_color)s%(message)s",
secondary_log_colors={
'message': {
'ERROR': 'red',
'CRITICAL': 'red'
}
}
)
3. dictConfig的使用
logging.config.dictConfig({
'formatters': {
'colored': {
'()': 'colorlog.ColoredFormatter',
'format': "%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s"
}
},
...
})
一個完整的例子參考tests/test_colorlog.py
4. fileConfig的使用
[loggers] keys=root [logger_root] handlers=stream level=DEBUG [formatters] keys=color [formatter_color] class=colorlog.ColoredFormatter format=%(log_color)s%(levelname)s:%(name)s:%(message)s:test_config.ini datefmt=%H:%M:%S [handlers] keys=stream [handler_stream] class=StreamHandler formatter=color args=()
配置了顏色格式的任何渠道都可以使用這些參數(shù)構(gòu)造的ColoredFormatter實例
一個完整的例子請參考test/test_config.ini
5. 自定義日志級別的使用
ColoredFormatter將使用logging.addLevelName添加自定義的日志級別
import logging, colorlog
TRACE = 5
logging.addLevelName(TRACE, 'TRACE')
formatter = colorlog.ColoredFormatter(log_colors={'TRACE': 'yellow'})
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logger = logging.getLogger('example')
logger.addHandler(handler)
logger.setLevel('TRACE')
logger.log(TRACE, 'a message using a custom level')
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決Python下imread,imwrite不支持中文的問題
今天小編就為大家分享一篇解決Python下imread,imwrite不支持中文的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
如何使用python的plot繪制loss、acc曲線并存儲成圖片
在數(shù)據(jù)可視化中曲線圖是一種常見的展示數(shù)據(jù)趨勢的方式,Python作為一種強(qiáng)大的編程語言,提供了豐富的數(shù)據(jù)處理和可視化庫,使得繪制曲線圖變得非常簡單,下面這篇文章主要給大家介紹了關(guān)于如何使用python的plot繪制loss、acc曲線并存儲成圖片的相關(guān)資料,需要的朋友可以參考下2024-03-03
python利用xpath爬取網(wǎng)上數(shù)據(jù)并存儲到django模型中
這篇文章主要介紹了python利用xpath爬取網(wǎng)上數(shù)據(jù)并存儲到django模型中,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02
Pytorch 實現(xiàn)計算分類器準(zhǔn)確率(總分類及子分類)
今天小編就為大家分享一篇Pytorch 實現(xiàn)計算分類器準(zhǔn)確率(總分類及子分類),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
pygame實現(xiàn)俄羅斯方塊游戲(基礎(chǔ)篇2)
這篇文章主要為大家介紹了pygame實現(xiàn)俄羅斯方塊游戲基礎(chǔ)的第2篇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-10-10
解決python打開https出現(xiàn)certificate verify failed的問題
這篇文章主要介紹了解決python打開https出現(xiàn)certificate verify failed的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09

