Click的日志级别参数类型
项目描述
click-loglevel 提供了一个用于在允许用户设置日志级别的 Click 程序中的 LogLevel 参数类型。它接受所有 logging 日志级别的名称(CRITICAL、ERROR、WARNING、INFO、DEBUG 和 NOTSET,不区分大小写),并将它们转换为相应的数值。它也接受整数值,并保留原值。还支持自定义日志级别。
从版本 0.4.0 开始,也支持对日志级别名称(内置和自定义)的shell自动完成。
安装
click-loglevel 需要 Python 3.7 或更高版本。只需使用 Python 3 的 pip 就可以安装它。
python3 -m pip install click-loglevel
示例
myscript.py:
import logging
import click
from click_loglevel import LogLevel
@click.command()
@click.option(
"-l",
"--log-level",
type=LogLevel(),
default="INFO",
help="Set logging level",
show_default=True,
)
def main(log_level: int) -> None:
logging.basicConfig(
format="[%(levelname)-8s] %(message)s",
level=log_level,
)
logging.log(log_level, "Log level set to %r", log_level)
if __name__ == "__main__":
main()
运行 myscript.py
$ python3 myscript.py
[INFO ] Log level set to 20
$ python3 myscript.py --log-level DEBUG
[DEBUG ] Log level set to 10
$ python3 myscript.py --log-level error
[ERROR ] Log level set to 40
$ python3 myscript.py --log-level 15
[Level 15] Log level set to 15
具有自定义日志级别的脚本
import logging
import click
from click_loglevel import LogLevel
logging.addLevelName(15, "VERBOSE")
logging.addLevelName(25, "NOTICE")
@click.command()
@click.option(
"-l",
"--log-level",
type=LogLevel(extra=["VERBOSE", "NOTICE"]),
default="INFO",
help="Set logging level",
show_default=True,
)
def main(log_level: int) -> None:
logging.basicConfig(
format="[%(levelname)-8s] %(message)s",
level=log_level,
)
logging.log(log_level, "Log level set to %r", log_level)
if __name__ == "__main__":
main()
API
click_loglevel 模块包含一个类
LogLevel
这是 click.ParamType 的一个子类,它接受标准的日志级别名称(不区分大小写)并将它们转换为相应的数值。它也接受整数值并保留原值。
可以通过将它们作为构造函数的 extra 参数传递来添加自定义日志级别。 extra 可以是一个包含级别名称的可迭代对象(在这种情况下,级别必须已经通过调用 logging.addLevelName() 在模块级别定义),或者是一个从级别名称到其对应值的映射。所有自定义日志级别都将不区分大小写地识别;如果两个不同的级别名称只在大小写上不同,则结果未定义。
项目详情
关闭
click-loglevel-0.5.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fcc98a136a96479b4768494df25017114ba1cb525dac0bed619209b3578fd4f3 |
|
MD5 | fc40e392149e1373b31f64ecc81ce484 |
|
BLAKE2b-256 | 566146b588b807c5b7fc3904ff5d68a7f24b62166b9fd9c8b943462d92eb1649 |
关闭
click_loglevel-0.5.0-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 897070fd4bf5b503edb5a1ecc0551448647901f4fac83a01c9f00aa28ad86d60 |
|
MD5 | bc565ba92eda67b37e1b89e83d7517ee |
|
BLAKE2b-256 | f7e37ba761b403fc58d2864da95403664b8b0485c3871f74eb932561e5a7a4fe |