ring-log 0.2.15

High-performance logger with lock-free ring buffer
Documentation
use std::{fs, time::Duration};

use criterion::{criterion_group, criterion_main, Criterion};
use ring_log::{Logger, LoggerFileOptions};

fn setup() {
    fs::File::options()
        .read(true)
        .write(true)
        .create(true)
        .truncate(true)
        .open("log.txt")
        .unwrap();
}

fn teardown() {
    fs::remove_file("log.txt").unwrap();
}

fn criterion_benchmark(c: &mut Criterion) {
    setup();
    let o = LoggerFileOptions {
        path: "log.txt",
        append_mode: false,
    };
    let logger = Logger::builder(Some(o));
    let mut group = c.benchmark_group("print");
    group.measurement_time(Duration::from_micros(25));
    group.sample_size(10);
    group.warm_up_time(Duration::from_micros(10));
    group.bench_function("print", |b| b.iter(|| logger.debug(|| "ff")));
    group.finish();

    logger.shutdown();
    teardown();
}

criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);