【譯】:python中的colorlog庫

來源:互聯網
上載者:User

標籤:預設值   dict   conf   顏色   div   建立   訊息   install   logging模組   

本文翻譯自colorlog官方文檔

一. 描述

colorlog.ColoredFormatter是一個Python logging模組的格式化,用於在終端輸出日誌的顏色

二. 安裝
pip install colorlog
三. 用法
import colorloghandler = 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:返回與記錄層級關聯的顏色

  • <name>_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 ColoredFormatterformatter = 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 ColoredFormatterformatter = 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=streamlevel=DEBUG[formatters]keys=color[formatter_color]class=colorlog.ColoredFormatterformat=%(log_color)s%(levelname)s:%(name)s:%(message)s:test_config.inidatefmt=%H:%M:%S[handlers]keys=stream[handler_stream]class=StreamHandlerformatter=colorargs=()

配置了顏色格式的任何渠道都可以使用這些參數構造的ColoredFormatter執行個體

一個完整的例子請參考test/test_config.ini

5. 自訂記錄層級的使用

ColoredFormatter將使用logging.addLevelName添加自訂的記錄層級

import logging, colorlogTRACE = 5logging.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‘)

 

【譯】:python中的colorlog庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.