Default-logger
Create a Logger[ConsoleSink] from the current shared default global configuration. This is the logger value used internally by the global helper functions such as log(...), info(...), and error(...).
Interface
pub fn default_logger() -> Logger[ConsoleSink] {}output
Logger[ConsoleSink]- Logger built from the shared console sink, current default minimum level, and current default target.
Explanation
Detailed rules explaining key parameters and behaviors
- The returned logger is built from
default_console_sink,default_min_level_ref, anddefault_target_ref. - Each call reflects the current shared configuration at that moment.
default_logger()constructs a freshLogger::new(...)value on each call while reusing the shared default console sink and the current stored default level and target values.- Later calls to
set_default_min_level(...)orset_default_target(...)do not mutate a logger value that was already returned earlier. - The logger writes to the standard console sink path.
- The global helper functions such as
log(...),info(...), anderror(...)calldefault_logger()for each write instead of holding one long-lived default logger instance. - This helper is useful when you want the same baseline behavior as the global shortcuts but still need the explicit
Loggerobject for chaining or inspection.
How to Use
Here are some specific examples provided.
When Start From Global Defaults But Keep A Logger Value
When code wants the default console path with later composition:
let logger = default_logger().with_timestamp()
logger.info("service started")In this example, the logger starts from global defaults and then gains extra instance-level behavior.
Later shared-default changes still require calling default_logger() again if a fresh explicit logger value should observe them.
When Inspect Current Shared Behavior
When code should branch using the same threshold as global helpers:
let logger = default_logger()
if logger.is_enabled(Level::Debug) {
logger.debug("debug path active")
}In this example, the explicit logger mirrors the same level gate used by global shortcut calls.
Error Case
e.g.:
If the shared default target is empty, the returned logger is still valid and simply uses an empty target.
Changes made later through
set_default_min_level(...)orset_default_target(...)do not mutate an already-stored logger value.
Notes
This helper returns a normal
Logger, so further chaining is available.It is the bridge between the simple global API and the explicit typed logger workflow.
Call
default_logger()again afterset_default_min_level(...)orset_default_target(...)if a fresh explicit logger value should reflect the updated shared defaults.