feat: setup logger

fix: create `.logs/` dir
This commit is contained in:
Kristofers Solo 2024-02-21 18:01:44 +02:00
parent b0a8d64880
commit b492f1c1fb
5 changed files with 96 additions and 1 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
/target
.logs/

74
Cargo.lock generated
View File

@ -457,6 +457,12 @@ dependencies = [
"wasm-bindgen",
]
[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.153"
@ -521,6 +527,16 @@ dependencies = [
"windows-sys 0.48.0",
]
[[package]]
name = "nu-ansi-term"
version = "0.46.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
dependencies = [
"overload",
"winapi",
]
[[package]]
name = "num_cpus"
version = "1.16.0"
@ -546,6 +562,12 @@ version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "overload"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
[[package]]
name = "parking_lot"
version = "0.12.1"
@ -815,6 +837,15 @@ dependencies = [
"serde",
]
[[package]]
name = "sharded-slab"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
dependencies = [
"lazy_static",
]
[[package]]
name = "signal-hook"
version = "0.3.17"
@ -963,6 +994,16 @@ dependencies = [
"libc",
]
[[package]]
name = "thread_local"
version = "1.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
dependencies = [
"cfg-if",
"once_cell",
]
[[package]]
name = "tinyvec"
version = "1.6.0"
@ -1067,6 +1108,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
dependencies = [
"once_cell",
"valuable",
]
[[package]]
name = "tracing-log"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
dependencies = [
"log",
"once_cell",
"tracing-core",
]
[[package]]
name = "tracing-subscriber"
version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
dependencies = [
"nu-ansi-term",
"sharded-slab",
"smallvec",
"thread_local",
"tracing-core",
"tracing-log",
]
[[package]]
@ -1091,6 +1158,7 @@ dependencies = [
"ratatui",
"tokio",
"tracing",
"tracing-subscriber",
"transmission-rpc",
"url",
]
@ -1151,6 +1219,12 @@ dependencies = [
"percent-encoding",
]
[[package]]
name = "valuable"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
[[package]]
name = "version_check"
version = "0.9.4"

View File

@ -10,8 +10,8 @@ edition = "2021"
crossterm = "0.27"
ratatui = { version = "0.26" }
transmission-rpc = "0.4"
# transmission-rpc = { path = "/home/kristofers/repos/transmission-rpc" }
url = "2.4"
anyhow = "1.0"
tokio = { version = "1", features = ["full"] }
tracing = "0.1"
tracing-subscriber = "0.3"

15
src/log.rs Normal file
View File

@ -0,0 +1,15 @@
use std::{fs::File, path::PathBuf, str::FromStr};
use tracing::Level;
use tracing_subscriber::fmt;
pub fn setup_logger() {
std::fs::create_dir_all(".logs").unwrap();
let path = PathBuf::from_str(".logs/traxor.log").unwrap();
let log_file = File::create(path).expect("Failed to create log file");
let subscriber = fmt::Subscriber::builder()
.with_max_level(Level::TRACE)
.with_writer(log_file)
.finish();
tracing::subscriber::set_global_default(subscriber).expect("setting default subscriber failed");
}

View File

@ -1,4 +1,5 @@
use anyhow::Result;
use log::setup_logger;
use ratatui::backend::CrosstermBackend;
use ratatui::Terminal;
use std::io;
@ -6,9 +7,13 @@ use traxor::app::App;
use traxor::event::{Event, EventHandler};
use traxor::handler::{get_action, update};
use traxor::tui::Tui;
mod log;
#[tokio::main]
async fn main() -> Result<()> {
// Setup the logger.
setup_logger();
// Create an application.
let mut app = App::new();