用法
下面是一个示例,说明入门是多么容易:
import coloredlogs, logging
# 创建一个记录器对象。
logger = logging.getLogger(__name__)
# 默认情况下,install()函数会在根记录器上安装一个处理程序,
# 这意味着从代码中记录消息,您使用的库都将显示在终端上。
coloredlogs.install(level='DEBUG')
# 如果您不想看到库中的日志消息,可以通过
#install()函数的特定记录器对象。在这种情况下,只记录来自该记录器的消息将显示在终端上。
coloredlogs.install(level='DEBUG', logger=logger)
# 一些例子。
logger.debug("this is a debugging message")
logger.info("this is an informational message")
logger.warning("this is a warning message")
logger.error("this is an error message")
logger.critical("this is a critical message")
日志消息的格式
ColoredFormatter 类支持用户定义的日志格式,因此您可以使用 您喜欢的任何日志格式。默认日志格式如下:
%(asctime)s %(hostname)s %(name)s[%(process)d] %(levelname)s %(message)s
此日志格式将产生以下输出:
2015-10-23 03:32:22 peter-macbook coloredlogs.demo[30462] DEBUG message with level 'debug'
2015-10-23 03:32:23 peter-macbook coloredlogs.demo[30462] VERBOSE message with level 'verbose'
2015-10-23 03:32:24 peter-macbook coloredlogs.demo[30462] INFO message with level 'info'
...
实现毫秒级精度
如果您从 logging.basicConfig() 切换到 coloredlogs.install(),您可能会注意到时间戳不再包含毫秒。这是因为 coloredlogs 不会在时间戳中输出毫秒,除非您明确指出 告诉它。有三种方法可以做到这一点:
-
简单的方法是将毫秒参数传递给 coloredlogs.install():
coloredlogs.install(milliseconds=True) -
或者,您可以更改日志格式以包含“msecs”:
%(asctime)s,%(msecs)03d %(hostname)s %(name)s[%(process)d] %(levelname)s %(message)s以下是对 coloredlogs.install() 的调用如下所示:
coloredlogs.install(fmt='%(asctime)s,%(msecs)03d %(hostname)s %(name)s[%(process)d] %(levelname)s %(message)s')通过自定义日志格式,您还可以更改分隔符 将秒与毫秒(上面的逗号)分开。这成为可能 在版本 3.0 中,增加了对用户定义的日志格式的支持。
-
如果 的使用不够灵活,您可以改为添加到日期/时间格式中,它将替换为 的值。 版本 9.3 中添加了对该指令的支持(由于 #45)。
%(msecs)d%f%(msecs)03d%f
自定义日志记录字段
支持以下自定义日志格式字段:
%(hostname)s提供本地系统的主机名。%(programname)s提供当前正在运行的程序的名称。%(username)s提供当前登录用户的用户名。
当 coloredlogs.install() 检测到这些字段中的任何一个被用于 将 string 格式化为适用的日志记录。自动过滤子类 已注册以填充相关的日志记录字段。