一. 描述
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類帶著一些參數:
- format:用于輸出日志的格式化字符串(必需)
- datefmt:一個傳遞給基類的可選的日期格式。見logging.Formatter
- reset:隱性的添加一個顏色重置代碼到消息輸出,除非輸出已經結束。默認為True
- log_colors:記錄級別名稱到顏色名稱的一個映射。可以在colorlog.default_log_colors或下面的例子中找到默認值
- secondary_log_colors:顏色名稱到log_colors樣式映射的映射,可以在格式化字符串中使用其定義的其他顏色。 請參考下面的示例
- style:在python3.2以以上可用。見logging.Formatter
可以向格式化字符串中添加參數,根據日志級別選擇顏色轉義碼:
- log_color:返回與日志級別關聯的顏色
-
_log_color:如果格式化中配置了輔助顏色,則根據日志級別返回另一種顏色(請參考下面的secondary_log_colors)
在為日志級別配置顏色時,可以使用逗號連接多個轉義碼(但不能直接在格式字符串中使用)。 例如,black,bg_white將在白色背景上使用轉義碼表示黑色文本
下面是格式化字符串中可用的:
- {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用法
以下代碼使用每個參數的默認值創建一個用于logging設置的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的使用
輔助日志顏色是一種根據日志級別選擇多種顏色的方法。 secondary_log_colors中的每個鍵都添加了一個可以在格式化字符串中使用的屬性(消息變為message_log_color),并且具有與log_colors參數格式相同的對應值
以下例子使用默認日志顏色突出顯示級別名稱,并以紅色突出顯示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=()
配置了顏色格式的任何渠道都可以使用這些參數構造的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')
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
