
Still TODO: - [x] Remove old log implementations - [x] More cleanup - [x] Verify atomic/lock logic - [x] More tests - [ ] ??? Ansi coloring when logging to stdout Release Notes: - N/A
35 lines
906 B
Rust
35 lines
906 B
Rust
//! # zlog_settings
|
|
use anyhow::Result;
|
|
use gpui::App;
|
|
use schemars::JsonSchema;
|
|
use serde::{Deserialize, Serialize};
|
|
use settings::{Settings, SettingsStore};
|
|
|
|
pub fn init(cx: &mut App) {
|
|
ZlogSettings::register(cx);
|
|
|
|
cx.observe_global::<SettingsStore>(|cx| {
|
|
let zlog_settings = ZlogSettings::get_global(cx);
|
|
zlog::filter::refresh_from_settings(&zlog_settings.scopes);
|
|
})
|
|
.detach();
|
|
}
|
|
|
|
#[derive(Clone, Debug, Default, Serialize, Deserialize, PartialEq, Eq, JsonSchema)]
|
|
pub struct ZlogSettings {
|
|
#[serde(default, flatten)]
|
|
pub scopes: std::collections::HashMap<String, String>,
|
|
}
|
|
|
|
impl Settings for ZlogSettings {
|
|
const KEY: Option<&'static str> = Some("log");
|
|
|
|
type FileContent = Self;
|
|
|
|
fn load(sources: settings::SettingsSources<Self::FileContent>, _: &mut App) -> Result<Self>
|
|
where
|
|
Self: Sized,
|
|
{
|
|
sources.json_merge()
|
|
}
|
|
}
|