zlog_settings.rs

 1//! # zlog_settings
 2use collections::HashMap;
 3
 4use gpui::App;
 5use settings::{Settings, SettingsStore};
 6
 7pub fn init(cx: &mut App) {
 8    ZlogSettings::register(cx);
 9
10    cx.observe_global::<SettingsStore>(|cx| {
11        let zlog_settings = ZlogSettings::get_global(cx);
12        zlog::filter::refresh_from_settings(&zlog_settings.scopes);
13    })
14    .detach();
15}
16
17#[derive(Clone, Debug)]
18pub struct ZlogSettings {
19    /// A map of log scopes to the desired log level.
20    /// Useful for filtering out noisy logs or enabling more verbose logging.
21    ///
22    /// Example: {"log": {"client": "warn"}}
23    pub scopes: HashMap<String, String>,
24}
25
26impl Settings for ZlogSettings {
27    fn from_settings(content: &settings::SettingsContent, _: &mut App) -> Self {
28        ZlogSettings {
29            scopes: content.log.clone().unwrap(),
30        }
31    }
32
33    fn import_from_vscode(_: &settings::VsCodeSettings, _: &mut settings::SettingsContent) {}
34}