move config entities to client for docs

This commit is contained in:
mbecker20
2024-04-28 15:16:57 -07:00
parent ba52ce79fc
commit b8afd43d07
14 changed files with 408 additions and 388 deletions

View File

@@ -8,7 +8,9 @@ license.workspace = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
serde.workspace = true
# local client
monitor_client.workspace = true
# external
anyhow.workspace = true
tracing.workspace = true
opentelemetry.workspace = true

View File

@@ -1,5 +1,5 @@
use anyhow::Context;
use serde::{Deserialize, Serialize};
use monitor_client::entities::logger::{LogConfig, StdioLogMode};
use tracing::level_filters::LevelFilter;
use tracing_subscriber::{
layer::SubscriberExt, util::SubscriberInitExt,
@@ -7,27 +7,6 @@ use tracing_subscriber::{
mod opentelemetry;
#[derive(Debug, Clone, Default, Deserialize)]
pub struct LogConfig {
/// The logging level. default: info
#[serde(default)]
pub level: LogLevel,
/// Controls logging to stdout / stderr
#[serde(default)]
pub stdio: StdioLogMode,
/// Enable opentelemetry exporting
pub otlp_endpoint: Option<String>,
#[serde(default = "default_opentelemetry_service_name")]
pub opentelemetry_service_name: String,
}
fn default_opentelemetry_service_name() -> String {
String::from("Monitor")
}
pub fn init(config: &LogConfig) -> anyhow::Result<()> {
let log_level: tracing::Level = config.level.into();
@@ -66,55 +45,3 @@ pub fn init(config: &LogConfig) -> anyhow::Result<()> {
}
.context("failed to init logger")
}
#[derive(
Debug,
Clone,
Copy,
Default,
PartialEq,
Eq,
Hash,
Serialize,
Deserialize,
)]
#[serde(rename_all = "lowercase")]
pub enum LogLevel {
Trace,
Debug,
#[default]
Info,
Warn,
Error,
}
impl From<LogLevel> for tracing::Level {
fn from(value: LogLevel) -> Self {
match value {
LogLevel::Trace => tracing::Level::TRACE,
LogLevel::Debug => tracing::Level::DEBUG,
LogLevel::Info => tracing::Level::INFO,
LogLevel::Warn => tracing::Level::WARN,
LogLevel::Error => tracing::Level::ERROR,
}
}
}
#[derive(
Debug,
Clone,
Copy,
Default,
PartialEq,
Eq,
Hash,
Serialize,
Deserialize,
)]
#[serde(rename_all = "lowercase")]
pub enum StdioLogMode {
#[default]
Standard,
Json,
None,
}