#rocket #slog #applications #logger #fairing #system #place

rocket-slog

为 rocket.rs 应用程序提供一个公平带(fairing),允许用户使用 slog Logger 替代内置的 rocket.rs 日志系统

7 个不稳定版本 (3 个破坏性更新)

使用旧的 Rust 2015

0.4.0 2018年12月9日
0.4.0-rc.22018年12月1日
0.3.0 2018年11月28日
0.2.2 2018年10月11日
0.1.0 2018年10月11日

#1 in #fairing

Download history 28/week @ 2024-03-12 24/week @ 2024-03-19 13/week @ 2024-03-26 28/week @ 2024-04-02 11/week @ 2024-04-09 21/week @ 2024-04-16 24/week @ 2024-04-23 21/week @ 2024-04-30 39/week @ 2024-05-07 38/week @ 2024-05-14 17/week @ 2024-05-21 12/week @ 2024-05-28 15/week @ 2024-06-04 16/week @ 2024-06-11 15/week @ 2024-06-18 8/week @ 2024-06-25

每月下载量 57

GPL-3.0 许可证

17KB
90

将 slog Logger 集成到您的 Rocket.rs 应用程序中

文档(master)

这是一个可以附加到您的 rocket.rs 应用程序的公平带,它允许在您的处理器中使用 slog Logger

安装(针对 rocket v0.3)

在您的 Cargo.toml 中,在 [dependencies] 部分,添加以下内容

rocket-slog = "0.3"

对于 2018 年版之前的 crate,请在您的 crate 根目录下添加以下内容

extern crate rocket_slog;

安装(针对 rocket 0.4)

在您的 Cargo.toml 中,在 [dependencies] 部分,添加以下内容

rocket-slog = "0.4.0-rc.2"

对于 2018 年版之前的 crate,请在您的 crate 根目录下添加以下内容

extern crate rocket_slog;

示例(针对 rocket 0.3)

以下是一个使用 rocket-slog 公平带的示例应用程序。请注意,除非您希望同时使用两个日志系统的输出,否则您可能需要禁用内置的 rocket 日志记录器。

#![feature(plugin)]
#![plugin(rocket_codegen)]

extern crate rocket;
extern crate rocket_slog;
#[macro_use(debug)] extern crate slog;
extern crate sloggers;

use std::error::Error;
use rocket::{Config};
use rocket_slog::{SyncLogger, SlogFairing};
use sloggers::{
    Build,
    terminal::{
        TerminalLoggerBuilder,
        Destination,
    },
    types::Severity,
};

#[get("/")]
fn index(logger: SyncLogger) -> &'static str {
    debug!(logger.get(), "THIS IS A CUSTOM MESSAGE");
    "hello, world"
}

fn main() -> Result<(), Box<Error>> {
    let mut builder = TerminalLoggerBuilder::new();
    builder.level(Severity::Debug);
    builder.destination(Destination::Stderr);
    let logger = builder.build()?;

    let fairing = SlogFairing::new(logger);

    let config = Config::development().unwrap();
    rocket::custom(config, false) // disables logging
        .attach(fairing)
        .mount("/", routes![index])
        .launch();
    Ok(())
}

示例(针对 rocket 0.4)

#![feature(proc_macro_hygiene, decl_macro)]

#[macro_use] extern crate rocket;
#[macro_use(debug)] extern crate slog;
extern crate rocket_slog;
extern crate sloggers;

use std::error::Error;
use rocket::config::{Config, Environment, LoggingLevel};
use rocket_slog::{SlogFairing, SyncLogger};
use sloggers::{
    Build,
    terminal::{
        TerminalLoggerBuilder,
        Destination,
    },
    types::Severity,
};

#[get("/")]
fn index(log: SyncLogger) -> &'static str {
    debug!(log, "some log message");
    "Hello world"
}

fn main() -> Result<(), Box<Error>> {
    let mut builder = TerminalLoggerBuilder::new();
    builder.level(Severity::Debug);
    builder.destination(Destination::Stderr);
    let logger = builder.build()?;
    let fairing = SlogFairing::new(logger);
    let config = Config::build(Environment::Development)
            .log_level(LoggingLevel::Off) // disables logging
            .finalize()
            .unwrap();
    rocket::custom(config)
        .mount("/", routes![index])
        .attach(fairing)
        .launch();
    Ok(())
}

依赖项

~10MB
~216K SLoC