blackhole-bin 0.6.2

blackhole is a server that responds to any request with http status code 200
Documentation
use anyhow::Result;
use colored_json::{ColorMode, ColoredFormatter, CompactFormatter};
use fern::FormatCallback;
use log::LevelFilter;
use serde_json::{json, Value};
use std::fmt::Arguments;

pub fn init(no_color: bool, level_filter: LevelFilter) -> Result<()> {
    let out = std::io::stdout();
    let mut dispatch = fern::Dispatch::new()
        .level(level_filter)
        .level_for("actix_server", log::LevelFilter::Warn)
        .chain(out);

    if !no_color {
        let callback = |out: FormatCallback, message: &Arguments, _record: &log::Record| {
            let message = message.to_string();
            let value: Value = serde_json::from_str(message.as_str())
                .unwrap_or_else(|_| json!(format_args!(r#"{{"message": {}}}"#, message)));
            let formatter = ColoredFormatter::new(CompactFormatter {});
            let log = formatter
                .to_colored_json(&value, ColorMode::On)
                .unwrap_or_else(|_| value.to_string());
            out.finish(format_args!("{}", log))
        };

        dispatch = dispatch.format(callback);
    }

    Ok(dispatch.apply()?)
}