ferroui_splat/logging/
log_host.rs1use super::{IFullLogger, ILogManager, LoggingException, StaticFullLogger};
4use crate::service_location::{AppLocator, ReadonlyDependencyResolverExt};
5use std::rc::Rc;
6
7pub struct LogHost;
10
11impl LogHost {
12 pub fn default_logger() -> StaticFullLogger {
16 let Some(factory) = AppLocator::current().get_service::<dyn ILogManager>() else {
17 std::panic::panic_any(LoggingException::with_message(
18 "ILogManager is null. This should never happen, your dependency resolver is broken",
19 ));
20 };
21 let full_logger = factory.get_logger(std::any::type_name::<LogHost>());
22 StaticFullLogger::new(full_logger)
23 }
24}
25
26pub trait IEnableLogger {
30 fn log(&self) -> Rc<dyn IFullLogger> {
35 let Some(factory) = AppLocator::current().get_service::<dyn ILogManager>() else {
36 panic!("ILogManager is null. This should never happen, your dependency resolver is broken");
37 };
38 factory.get_logger(std::any::type_name::<Self>())
39 }
40}