#![cfg_attr(docsrs, feature(doc_cfg))]
#![deny(missing_docs)]
#![deny(clippy::all)]
#![deny(clippy::pedantic)]
#![allow(clippy::unused_self)]
#![allow(clippy::needless_doctest_main)]
mod deferred_now;
mod file_spec;
mod flexi_error;
mod flexi_logger;
mod formats;
mod log_specification;
mod logger;
mod logger_handle;
mod parameters;
mod primary_writer;
#[cfg(feature = "trc")]
#[cfg_attr(docsrs, doc(cfg(feature = "trc")))]
pub mod trc;
mod write_mode;
pub mod code_examples;
pub mod filter;
mod util;
pub mod writers;
pub mod error_info;
pub use crate::deferred_now::{now_local, DeferredNow};
pub use crate::file_spec::FileSpec;
pub use crate::flexi_error::FlexiLoggerError;
pub use crate::formats::*;
pub use crate::log_specification::{LogSpecBuilder, LogSpecification, ModuleFilter};
pub use crate::logger::{Duplicate, ErrorChannel, Logger};
pub use crate::logger_handle::LoggerHandle;
pub use crate::parameters::{Age, Cleanup, Criterion, Naming};
pub(crate) use crate::write_mode::EffectiveWriteMode;
pub use crate::write_mode::{WriteMode, DEFAULT_BUFFER_CAPACITY, DEFAULT_FLUSH_INTERVAL};
#[cfg(feature = "async")]
pub use crate::write_mode::{DEFAULT_MESSAGE_CAPA, DEFAULT_POOL_CAPA};
pub use log::{Level, LevelFilter, Record};