#cursive #logging #terminal #env-var #cursive-views

cursive-logger-view

由 deinstapel/cursive-flexi-logger-view 衍生而来

1 个不稳定版本

0.6.0 2024年3月8日

#576调试

BSD-3-Clause

74KB
352 代码行

欢迎来到 cursive-flexi-logger-view 👋

stable build nightly build crates.io Docs.rs GitHub PRs Welcome
使用 emabee/flexi_loggergyscos/cursive 的替代调试视图


本项目为 gyscos/cursive 提供了一个新的调试视图,使用了 emabee/flexi_logger 包。这使得 FlexiLoggerView 能够尊重 RUST_LOG 环境变量以及 flexi_logger 配置文件。下面查看 demo 以了解其外观。

看起来如何? demo terminalizer

展开查看 flexi-logger-view demo

使用方法

只需将其添加到您的 Cargo.toml

[dependencies]
cursive-flexi-logger-view = "^0"

使用 FlexiLoggerView

要创建一个 FlexiLoggerView,您首先必须在 flexi_logger 中将 cursive_flexi_logger 注册为一个 Writer。在 flexi_logger 启动后,您可以创建一个 FlexiLoggerView 实例并将其添加到 cursive。

use cursive::Cursive;
use cursive_flexi_logger_view::FlexiLoggerView;
use flexi_logger::Logger;

fn main() {
    // we need to initialize cursive first, as the cursive-flexi-logger
    // needs a cursive callback sink to notify cursive about screen refreshs
    // when a new log message arrives
    let mut siv = Cursive::default();

    Logger::try_with_env_or_str("trace")
        .expect("Could not create Logger from environment :(")
        .log_to_file_and_writer(
            flexi_logger::FileSpec::default()
                .directory("logs")
                .suppress_timestamp(),
            cursive_flexi_logger_view::cursive_flexi_logger(&siv)
            )
        .format(flexi_logger::colored_with_thread)
        .start()
        .expect("failed to initialize logger!");

    siv.add_layer(FlexiLoggerView::scrollable()); // omit `scrollable` to remove scrollbars

    log::info!("test log message");
    siv.run();
}

查看 文档 以获取 API 的详细解释。

故障排除

如果您发现任何错误/意外行为或对未来的更改有建议,请打开一个问题,描述当前行为和您期望的行为。

开发 cargo test

运行测试

只需运行

$ cargo test

即可执行所有可用测试。

shields.io 端点

shields.io 端点生成在 ./target/shields 文件夹内。它们被用于本 README 文件。

作者

Fin Christensen

:octocat: @fin-ger
🐘 @fin_ger@weirder.earth
🐦 @fin_ger_github


Johannes Wünsche

:octocat: @jwuensche
🐘 @fredowald@mastodon.social
🐦 @Fredowald

展示你的支持

如果这个项目帮到了你,请给一个 ⭐!

依赖项

~6–12MB
~126K SLoC