pub use ::inklog::{InklogConfig, InklogError, LoggerManager};
pub async fn init_inklog_logger() -> Result<LoggerManager, InklogError> {
LoggerManager::with_config(InklogConfig::default()).await
}
#[cfg(test)]
mod tests {
use super::*;
#[tokio::test]
#[serial_test::serial]
async fn init_inklog_logger_returns_manager() {
let result = init_inklog_logger().await;
assert!(
result.is_ok(),
"init_inklog_logger should return Ok, got: {:?}",
result.err()
);
}
#[tokio::test]
#[serial_test::serial]
async fn init_sets_global_log_level() {
let _manager = init_inklog_logger().await.expect("init should succeed");
assert_ne!(
log::max_level(),
log::LevelFilter::Off,
"global log level should be set by inklog, not remain Off"
);
}
#[tokio::test]
#[serial_test::serial]
async fn log_calls_route_through_inklog_without_panic() {
let _manager = init_inklog_logger().await.expect("init should succeed");
log::error!("sdforge inklog bridge test: error level");
log::warn!("sdforge inklog bridge test: warn level");
log::info!("sdforge inklog bridge test: info level");
}
#[tokio::test]
#[serial_test::serial]
async fn init_inklog_logger_is_idempotent() {
let _first = init_inklog_logger()
.await
.expect("first init should succeed");
let second = init_inklog_logger().await;
assert!(
second.is_ok(),
"second init should still return Ok (install failure is downgraded to warn), got: {:?}",
second.err()
);
}
}