日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python中的colorlog庫(kù)使用詳解

系統(tǒng) 2277 0

一. 描述

colorlog.ColoredFormatter是一個(gè)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:一個(gè)傳遞給基類的可選的日期格式。見logging.Formatter
  • reset:隱性的添加一個(gè)顏色重置代碼到消息輸出,除非輸出已經(jīng)結(jié)束。默認(rèn)為True
  • log_colors:記錄級(jí)別名稱到顏色名稱的一個(gè)映射。可以在colorlog.default_log_colors或下面的例子中找到默認(rèn)值
  • secondary_log_colors:顏色名稱到log_colors樣式映射的映射,可以在格式化字符串中使用其定義的其他顏色。 請(qǐng)參考下面的示例
  • style:在python3.2以以上可用。見logging.Formatter

可以向格式化字符串中添加參數(shù),根據(jù)日志級(jí)別選擇顏色轉(zhuǎn)義碼:

  • log_color:返回與日志級(jí)別關(guān)聯(lián)的顏色
  • _log_color:如果格式化中配置了輔助顏色,則根據(jù)日志級(jí)別返回另一種顏色(請(qǐng)參考下面的secondary_log_colors)

在為日志級(jí)別配置顏色時(shí),可以使用逗號(hào)連接多個(gè)轉(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

四. 實(shí)例

1. ColoredFormatter用法

以下代碼使用每個(gè)參數(shù)的默認(rèn)值創(chuàng)建一個(gè)用于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ù)日志級(jí)別選擇多種顏色的方法。 secondary_log_colors中的每個(gè)鍵都添加了一個(gè)可以在格式化字符串中使用的屬性(消息變?yōu)閙essage_log_color),并且具有與log_colors參數(shù)格式相同的對(duì)應(yīng)值

以下例子使用默認(rèn)日志顏色突出顯示級(jí)別名稱,并以紅色突出顯示ERROR和CRITICAL級(jí)別的日志信息

            
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"
  }
 },

 ...
})
          

一個(gè)完整的例子參考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實(shí)例

一個(gè)完整的例子請(qǐng)參考test/test_config.ini

5. 自定義日志級(jí)別的使用

ColoredFormatter將使用logging.addLevelName添加自定義的日志級(jí)別

            
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')
          

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 恩施市| 萝北县| 郸城县| 于田县| 孟津县| 南投市| 顺义区| 东山县| 岳阳县| 登封市| 玉田县| 安西县| 陆丰市| 溧水县| 广平县| 改则县| 山东省| 赤城县| 喜德县| 洞头县| 金昌市| 乌兰察布市| 会泽县| 古田县| 锦屏县| 抚宁县| 武威市| 奉贤区| 黄梅县| 雅江县| 来宾市| 曲麻莱县| 龙泉市| 衡南县| 钦州市| 绍兴市| 久治县| 航空| 宝鸡市| 眉山市| 龙海市|