use super::{LogLevelFilter, Logger, LoggerSetError};
#[cfg(feature = "std")]
use ::log::set_boxed_logger;
#[cfg(all(not(feature = "safe_sys"), feature = "unsafe_thread"))]
use ::log::set_logger_racy;
use ::log::{STATIC_MAX_LEVEL, logger, max_level, set_logger, set_max_level};
#[doc = crate::_tags!(log namespace)]
#[doc = crate::_doc_location!("sys/log")]
#[cfg_attr(nightly_doc, doc(cfg(feature = "dep_log")))]
#[derive(Debug)]
pub struct Log;
impl Log {
pub const MAX_LEVEL: LogLevelFilter = STATIC_MAX_LEVEL;
#[rustfmt::skip]
pub fn max_level() -> LogLevelFilter { max_level() }
#[rustfmt::skip]
pub fn set_max_level(level: LogLevelFilter) { set_max_level(level) }
pub fn logger() -> &'static dyn Logger {
logger()
}
#[cfg(target_has_atomic = "ptr")]
#[cfg_attr(nightly_doc, doc(cfg(target_has_atomic = "ptr")))]
pub fn set_logger(logger: &'static dyn Logger) -> Result<(), LoggerSetError> {
set_logger(logger)
}
#[cfg(all(feature = "std", target_has_atomic = "ptr"))]
#[cfg_attr(nightly_doc, doc(cfg(all(feature = "std", target_has_atomic = "ptr"))))]
pub fn set_boxed_logger(logger: Box<dyn Logger>) -> Result<(), LoggerSetError> {
set_boxed_logger(logger)
}
#[cfg(all(not(feature = "safe_sys"), feature = "unsafe_thread"))]
#[cfg_attr(nightly_doc, doc(cfg(feature = "unsafe_thread")))]
pub unsafe fn set_logger_racy(logger: &'static dyn Logger) -> Result<(), LoggerSetError> {
unsafe { set_logger_racy(logger) }
}
}