rencfs 0.14.11

WARNING! UNDER ACTIVE DEVELOPMENT. An encrypted file system that is mounted with FUSE on Linux. It can be used to create encrypted directories.
Documentation
use crate::is_debug;
use std::io;
use tracing::level_filters::LevelFilter;
use tracing::Level;
use tracing_appender::non_blocking::WorkerGuard;
use tracing_subscriber::EnvFilter;

#[allow(clippy::missing_panics_doc)]
#[allow(clippy::module_name_repetitions)]
pub fn log_init(level: Level) -> WorkerGuard {
    let directive = format!("rencfs={}", level.as_str())
        .parse()
        .expect("cannot parse log directive");
    let filter = EnvFilter::builder()
        .with_default_directive(LevelFilter::INFO.into())
        .from_env()
        .unwrap()
        .add_directive(directive);

    let (writer, guard) = tracing_appender::non_blocking(io::stdout());
    let builder = tracing_subscriber::fmt()
        .with_writer(writer)
        .with_env_filter(filter);
    // .with_max_level(level);
    if is_debug() {
        builder.pretty().init();
    } else {
        builder.init();
    }

    guard
}