mirror of
https://gitlab.com/gabmus/envision.git
synced 2025-08-03 06:38:52 +00:00
feat: write rolling logs to file
This commit is contained in:
parent
869927bb5c
commit
96e1a20eda
4 changed files with 72 additions and 8 deletions
47
Cargo.lock
generated
47
Cargo.lock
generated
|
@ -420,6 +420,15 @@ dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-channel"
|
||||||
|
version = "0.5.14"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471"
|
||||||
|
dependencies = [
|
||||||
|
"crossbeam-utils",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crossbeam-utils"
|
name = "crossbeam-utils"
|
||||||
version = "0.8.20"
|
version = "0.8.20"
|
||||||
|
@ -577,6 +586,7 @@ dependencies = [
|
||||||
"sha2",
|
"sha2",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tracing",
|
"tracing",
|
||||||
|
"tracing-appender",
|
||||||
"tracing-subscriber",
|
"tracing-subscriber",
|
||||||
"tracker",
|
"tracker",
|
||||||
"uuid",
|
"uuid",
|
||||||
|
@ -2781,10 +2791,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
|
checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"deranged",
|
"deranged",
|
||||||
|
"itoa",
|
||||||
"num-conv",
|
"num-conv",
|
||||||
"powerfmt",
|
"powerfmt",
|
||||||
"serde",
|
"serde",
|
||||||
"time-core",
|
"time-core",
|
||||||
|
"time-macros",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -2793,6 +2805,16 @@ version = "0.1.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
|
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "time-macros"
|
||||||
|
version = "0.2.18"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
|
||||||
|
dependencies = [
|
||||||
|
"num-conv",
|
||||||
|
"time-core",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tinystr"
|
name = "tinystr"
|
||||||
version = "0.7.6"
|
version = "0.7.6"
|
||||||
|
@ -2905,6 +2927,18 @@ dependencies = [
|
||||||
"tracing-core",
|
"tracing-core",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tracing-appender"
|
||||||
|
version = "0.2.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf"
|
||||||
|
dependencies = [
|
||||||
|
"crossbeam-channel",
|
||||||
|
"thiserror",
|
||||||
|
"time",
|
||||||
|
"tracing-subscriber",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tracing-attributes"
|
name = "tracing-attributes"
|
||||||
version = "0.1.28"
|
version = "0.1.28"
|
||||||
|
@ -2937,6 +2971,16 @@ dependencies = [
|
||||||
"tracing-core",
|
"tracing-core",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tracing-serde"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1"
|
||||||
|
dependencies = [
|
||||||
|
"serde",
|
||||||
|
"tracing-core",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tracing-subscriber"
|
name = "tracing-subscriber"
|
||||||
version = "0.3.19"
|
version = "0.3.19"
|
||||||
|
@ -2947,12 +2991,15 @@ dependencies = [
|
||||||
"nu-ansi-term",
|
"nu-ansi-term",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"regex",
|
"regex",
|
||||||
|
"serde",
|
||||||
|
"serde_json",
|
||||||
"sharded-slab",
|
"sharded-slab",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
"thread_local",
|
"thread_local",
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-core",
|
"tracing-core",
|
||||||
"tracing-log",
|
"tracing-log",
|
||||||
|
"tracing-serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
|
@ -40,5 +40,6 @@ sha2 = "0.10.8"
|
||||||
tokio = { version = "1.39.3", features = ["process"] }
|
tokio = { version = "1.39.3", features = ["process"] }
|
||||||
notify-rust = "4.11.3"
|
notify-rust = "4.11.3"
|
||||||
zbus = { version = "5.1.1", features = ["tokio"] }
|
zbus = { version = "5.1.1", features = ["tokio"] }
|
||||||
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
|
tracing-subscriber = { version = "0.3.19", features = ["env-filter", "json"] }
|
||||||
tracing = "0.1.41"
|
tracing = "0.1.41"
|
||||||
|
tracing-appender = "0.2.3"
|
||||||
|
|
26
src/main.rs
26
src/main.rs
|
@ -5,6 +5,7 @@ use file_builders::{
|
||||||
openvrpaths_vrpath::{get_current_openvrpaths, set_current_openvrpaths_to_steam},
|
openvrpaths_vrpath::{get_current_openvrpaths, set_current_openvrpaths_to_steam},
|
||||||
};
|
};
|
||||||
use gettextrs::LocaleCategory;
|
use gettextrs::LocaleCategory;
|
||||||
|
use paths::get_logs_dir;
|
||||||
use relm4::{
|
use relm4::{
|
||||||
adw,
|
adw,
|
||||||
gtk::{self, gdk, gio, glib, prelude::*},
|
gtk::{self, gdk, gio, glib, prelude::*},
|
||||||
|
@ -13,7 +14,9 @@ use relm4::{
|
||||||
use std::env;
|
use std::env;
|
||||||
use steam_linux_runtime_injector::restore_runtime_entrypoint;
|
use steam_linux_runtime_injector::restore_runtime_entrypoint;
|
||||||
use tracing::warn;
|
use tracing::warn;
|
||||||
use tracing_subscriber::{filter::LevelFilter, EnvFilter};
|
use tracing_subscriber::{
|
||||||
|
filter::LevelFilter, layer::SubscriberExt, util::SubscriberInitExt, EnvFilter, Layer,
|
||||||
|
};
|
||||||
use ui::{
|
use ui::{
|
||||||
app::{App, AppInit, Msg},
|
app::{App, AppInit, Msg},
|
||||||
cmdline_opts::CmdLineOpts,
|
cmdline_opts::CmdLineOpts,
|
||||||
|
@ -69,13 +72,22 @@ fn main() -> Result<()> {
|
||||||
}
|
}
|
||||||
restore_steam_xr_files();
|
restore_steam_xr_files();
|
||||||
|
|
||||||
tracing_subscriber::fmt()
|
let rolling_log_writer = tracing_appender::rolling::daily(get_logs_dir(), "log");
|
||||||
.with_env_filter(
|
let (non_blocking_appender, _appender_guard) =
|
||||||
EnvFilter::builder()
|
tracing_appender::non_blocking(rolling_log_writer);
|
||||||
.with_default_directive(LevelFilter::INFO.into())
|
tracing_subscriber::registry()
|
||||||
.from_env_lossy(),
|
.with(
|
||||||
|
tracing_subscriber::fmt::layer().pretty().with_filter(
|
||||||
|
EnvFilter::builder()
|
||||||
|
.with_default_directive(LevelFilter::INFO.into())
|
||||||
|
.from_env_lossy(),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.with(
|
||||||
|
tracing_subscriber::fmt::layer()
|
||||||
|
.json()
|
||||||
|
.with_writer(non_blocking_appender),
|
||||||
)
|
)
|
||||||
.pretty()
|
|
||||||
.init();
|
.init();
|
||||||
|
|
||||||
// Prepare i18n
|
// Prepare i18n
|
||||||
|
|
|
@ -56,6 +56,10 @@ pub fn get_cache_dir() -> PathBuf {
|
||||||
XDG.get_cache_home().join(CMD_NAME)
|
XDG.get_cache_home().join(CMD_NAME)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_logs_dir() -> PathBuf {
|
||||||
|
get_cache_dir().join("logs")
|
||||||
|
}
|
||||||
|
|
||||||
pub fn get_backup_dir() -> PathBuf {
|
pub fn get_backup_dir() -> PathBuf {
|
||||||
let p = get_data_dir().join("backups");
|
let p = get_data_dir().join("backups");
|
||||||
if !p.is_dir() {
|
if !p.is_dir() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue