emixlog

Crates.ioemixlog
lib.rsemixlog
version0.6.0
created_at2026-01-11 14:22:26.67923+00
updated_at2026-01-11 14:22:26.67923+00
descriptionMulti-sink logging adapters and helpers for log4rs, slog, and EssentialMix utilities.
homepage
repositoryhttps://github.com/asm2025/essentialmix-rs
max_upload_size
id2035873
size82,294
asm (asm2025)

documentation

README

emixlog

emixlog adds multi-sink logging utilities and adapters for popular Rust logging ecosystems so you can fan out structured logs across multiple targets.

Feature Flags

  • log4rs: Enable integration helpers for the log4rs configuration-driven backend.
  • slog: Enable adapters for slog.
[dependencies]
emixlog = { path = "../../crates/log", features = ["log4rs"] }

Quick Example

use emixlog::{MultiLogger, LogLevel};
use log::{Log, Metadata, Record};

struct StdoutLogger;

impl Log for StdoutLogger {
    fn enabled(&self, _: &Metadata) -> bool { true }
    fn log(&self, record: &Record) { println!("{}", record.args()); }
    fn flush(&self) {}
}

MultiLogger::new()
    .add_logger(Box::new(StdoutLogger))
    .init_with_level(LogLevel::Info)
    .expect("logger already initialized");
  • Add as many loggers as you need (file, stdout, log4rs appenders, slog drains).

  • Use try_init variants when you want to ignore duplicate registration errors.

  • LOG_DATE_FORMAT, LOG_SIZE_MIN, and LOG_SIZE_MAX centralize shared formatting constants for downstream crates.

Commit count: 272

cargo fmt