| Crates.io | emixlog |
| lib.rs | emixlog |
| version | 0.6.0 |
| created_at | 2026-01-11 14:22:26.67923+00 |
| updated_at | 2026-01-11 14:22:26.67923+00 |
| description | Multi-sink logging adapters and helpers for log4rs, slog, and EssentialMix utilities. |
| homepage | |
| repository | https://github.com/asm2025/essentialmix-rs |
| max_upload_size | |
| id | 2035873 |
| size | 82,294 |
emixlog adds multi-sink logging utilities and adapters for popular Rust
logging ecosystems so you can fan out structured logs across multiple targets.
log4rs: Enable integration helpers for the log4rs configuration-driven
backend.slog: Enable adapters for slog.[dependencies]
emixlog = { path = "../../crates/log", features = ["log4rs"] }
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.