Skip to content

Latest commit

 

History

History
96 lines (69 loc) · 2.59 KB

README.zh.md

File metadata and controls

96 lines (69 loc) · 2.59 KB

richuru - 在 Loguru 中使用 Rich 为日志增色

简体中文 | English

richuru 是一个轻量级的依赖, 为 loguru 提供 rich 强大的终端渲染支持。

本项目来源并独立自 Graia Amnesia 的组件 graia.amnesia.log, 且由 @BlueGlassBlock 的原始实现修改而成。

Quick Start

安装 richuru:

elaina@localhost $ pip install richuru

elaina@localhost $ pdm add richuru

elaina@localhost $ poetry add richuru

在 REPL 内试用:

>>> import richuru
>>> richuru.install()
>>>
>>> from loguru import logger
>>> logger.info("Hello World!", alt="Hello, [bold magenta]World[/bold magenta]!")

richuru 被设计为一个可选依赖, 这意味着在使用 richuru 时你需要尽可能的提供回退模式(fallback pattern), 以兼容未启用 richuru 的终端用户.

logger.<method>(...) 时提供 alt 选项即可使 richuru 识别并启用 rich 的富文本功能.

当然, 你也能不使用 alt, 而是直接指定一整个条目的富文本样式:

logger.info("i'm in rich!", style="bold red")

其等同于:

logger.info("i'm in rich!", alt="[bold red]i'm in rich![/]")
# 实际上你一点也不 rich, 如果你没使用 richuru; just a joke :P

打印 ConsoleRenderable 对象:

from rich.markdown import Markdown

with open("README.md") as readme:
    markdown = Markdown(readme.read())

logger.info("fallback msg", rich=markdown)

这适用于像是 Table, Markdown 这样的静态元素。

当需要使用动态元素时,需要将你所使用的 rich Console 对象传入 install。实际上,如果需要向标准输出打印任何 ConsoleRenderable,都推荐使用一个 Console 的单例。

from richuru import install
from rich import Console

console = Console(
    theme=Theme(  # 需要设定,否则色彩不正确
        {
            'logging.level.success': 'green',
            'logging.level.trace': 'bright_black',
        }
    )
)
install(rich_console=console)

with Progress(
    TextColumn('[bold green]{task.description}'),
    BarColumn(bar_width=None),
    MofNCompleteColumn(),
    '•',
    TimeElapsedColumn(),
    console=console,
) as progress:
    task = progress.add_task('[cyan]Working...', total=10)
    while not progress.finished:
        logger.success('Hello, World!')
        progress.update(task, advance=1)
        progress.refresh()
        sleep(0.2)

开源协议相关

本项目使用 MIT License 开源.