use crate::logging::json::JsonFormatterConfig;
use ::tracing::Level;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum LogOutput {
#[default]
Stdout,
Stderr,
}
#[derive(Debug, Clone)]
pub struct JsonLoggerConfig {
pub level: Level,
pub output: LogOutput,
pub formatter_config: JsonFormatterConfig,
}
impl Default for JsonLoggerConfig {
fn default() -> Self {
Self { level: Level::INFO, output: LogOutput::Stdout, formatter_config: JsonFormatterConfig::default() }
}
}
impl JsonLoggerConfig {
pub fn new() -> Self {
Self::default()
}
pub fn with_level(mut self, level: Level) -> Self {
self.level = level;
self
}
pub fn with_output(mut self, output: LogOutput) -> Self {
self.output = output;
self
}
pub fn with_formatter_config(mut self, formatter_config: JsonFormatterConfig) -> Self {
self.formatter_config = formatter_config;
self
}
}
pub fn init_json_logger(_config: JsonLoggerConfig) {
tracing::info!("JSON logger initialized (lightweight implementation)");
}
pub fn init_default_json_logger() {
init_json_logger(JsonLoggerConfig::default());
}