blob: d8fa80db781c1dcaf8e27a47a24f25ccaf970f98 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
use {
log::Level,
log::{debug, error, info, trace, warn},
std::fmt::Arguments,
};
pub trait FmtArgsLogger {
fn log(&self, level: Level, args: Arguments);
}
/// Global reference to default logger object.
pub static LOGGER: DefaultFmtArgsLogger = DefaultFmtArgsLogger {};
/// Logger is a facade around log crate macros.
pub struct DefaultFmtArgsLogger;
impl FmtArgsLogger for DefaultFmtArgsLogger {
fn log(&self, level: Level, args: Arguments) {
match level {
Level::Trace => {
trace!("{}", args);
}
Level::Debug => {
debug!("{}", args);
}
Level::Info => {
info!("{}", args);
}
Level::Warn => {
warn!("{}", args);
}
Level::Error => {
error!("{}", args);
}
}
}
}