From b563c7ea24050a084dc3fa468dc9f8fd85cd0b61 Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Thu, 10 Jul 2025 17:30:38 +0300 Subject: [PATCH] fix(log): decrease log size --- Cargo.lock | 8 ++++++++ Cargo.toml | 3 ++- src/app/action.rs | 21 ++++++++++++++++++++- src/config/log.rs | 2 +- src/config/mod.rs | 12 ++++++++++++ src/handler.rs | 15 ++++++--------- src/main.rs | 19 +++++++++++++++---- 7 files changed, 64 insertions(+), 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f64d958..dcf6c8a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -342,6 +342,7 @@ dependencies = [ "proc-macro2", "quote", "syn", + "unicode-xid", ] [[package]] @@ -2045,6 +2046,7 @@ dependencies = [ "color-eyre", "crossterm 0.29.0", "derive_macro", + "derive_more", "dirs", "merge", "ratatui", @@ -2102,6 +2104,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + [[package]] name = "untrusted" version = "0.9.0" diff --git a/Cargo.toml b/Cargo.toml index cdf6ee8..4bcf33c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,9 +6,10 @@ license = "GPLv3" edition = "2024" [dependencies] -derive_macro = { path = "derive_macro" } color-eyre = "0.6" crossterm = "0.29" +derive_macro = { path = "derive_macro" } +derive_more = { version = "2.0", features = ["display"] } dirs = "6.0" merge = "0.2" ratatui = { version = "0.29" } diff --git a/src/app/action.rs b/src/app/action.rs index dbec8c0..4a9458c 100644 --- a/src/app/action.rs +++ b/src/app/action.rs @@ -1,20 +1,39 @@ -#[derive(Debug, Clone, PartialEq)] +use derive_more::Display; + +#[derive(Debug, Clone, PartialEq, Display)] pub enum Action { + #[display("Quit")] Quit, + #[display("Next Tab")] NextTab, + #[display("Previous Tab")] PrevTab, + #[display("Next Torrent")] NextTorrent, + #[display("Previous Torrent")] PrevTorrent, + #[display("Switch to Tab {}", _0)] SwitchTab(u8), + #[display("Toggle Help")] ToggleHelp, + #[display("Toggle Torrent")] ToggleTorrent, + #[display("Toggle All Torrents")] ToggleAll, + #[display("Pause All Torrents")] PauseAll, + #[display("Start All Torrents")] StartAll, + #[display("Move Torrent(-s)")] Move, + #[display("Delete Torrent(-s) (force: {})", _0)] Delete(bool), + #[display("Rename Torrent")] Rename, + #[display("Select")] Select, + #[display("Submit")] Submit, + #[display("Cancel")] Cancel, } diff --git a/src/config/log.rs b/src/config/log.rs index 2be49cc..66b6e89 100644 --- a/src/config/log.rs +++ b/src/config/log.rs @@ -1,5 +1,5 @@ use derive_macro::FromFile; -use merge::{option::overwrite_none, Merge}; +use merge::{Merge, option::overwrite_none}; use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Deserialize, Serialize, Merge)] diff --git a/src/config/mod.rs b/src/config/mod.rs index 24ef1da..330f4ee 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -9,6 +9,7 @@ use log::{LogConfig, LogConfigFile}; use merge::{Merge, option::overwrite_none}; use serde::{Deserialize, Serialize}; use std::path::PathBuf; +use tracing::{debug, info, warn}; #[derive(Debug, Clone, Default, Deserialize, Serialize, Merge)] pub struct ConfigFile { @@ -28,28 +29,39 @@ pub struct Config { } impl Config { + #[tracing::instrument(name = "Loading configuration")] pub fn load() -> Result { let mut config = ConfigFile::default(); // Load system-wide config let system_config_path = PathBuf::from("/etc/xdg/traxor/config.toml"); if system_config_path.exists() { + info!("Loading system-wide config from: {:?}", system_config_path); let config_str = std::fs::read_to_string(&system_config_path)?; let system_config = toml::from_str::(&config_str)?; config.merge(system_config); + info!("Successfully loaded system-wide config."); + } else { + warn!("System-wide config not found at: {:?}", system_config_path); } // Load user-specific config let user_config_path = Self::get_config_path()?; if user_config_path.exists() { + info!("Loading user-specific config from: {:?}", user_config_path); let config_str = std::fs::read_to_string(&user_config_path)?; let user_config = toml::from_str::(&config_str)?; config.merge(user_config); + info!("Successfully loaded user-specific config."); + } else { + warn!("User-specific config not found at: {:?}", user_config_path); } + debug!("Configuration loaded successfully."); Ok(config.into()) } + #[tracing::instrument(name = "Getting config path")] fn get_config_path() -> Result { let config_dir = std::env::var("XDG_CONFIG_HOME") .map(PathBuf::from) diff --git a/src/handler.rs b/src/handler.rs index 6ea7f77..fefd9f5 100644 --- a/src/handler.rs +++ b/src/handler.rs @@ -1,8 +1,9 @@ use crate::app::{App, action::Action}; use color_eyre::Result; use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; -use tracing::{Level, event, info_span}; +use tracing::{debug, info}; +#[tracing::instrument(name = "Handling input", skip(app))] async fn handle_input(key_event: KeyEvent, app: &mut App<'_>) -> Result> { match key_event.code { KeyCode::Enter => Ok(Some(Action::Submit)), @@ -26,15 +27,13 @@ async fn handle_input(key_event: KeyEvent, app: &mut App<'_>) -> Result) -> Result> { if app.input_mode { return handle_input(key_event, app).await; } - let span = info_span!("get_action"); - let _enter = span.enter(); - event!(Level::INFO, "handling key event: {:?}", key_event); + debug!("handling key event: {:?}", key_event); let keybinds = &app.config.keybinds; @@ -65,11 +64,9 @@ pub async fn get_action(key_event: KeyEvent, app: &mut App<'_>) -> Result