mirror of
https://github.com/msfjarvis/clipboard-substitutor
synced 2025-08-14 22:27:03 +05:30
refactor(logging): extract tracing infrastructure to its own module
This commit is contained in:
parent
f9ce850414
commit
26b0b06759
2 changed files with 38 additions and 27 deletions
33
src/logging.rs
Normal file
33
src/logging.rs
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
use tracing::dispatcher::SetGlobalDefaultError;
|
||||||
|
use tracing::subscriber::set_global_default;
|
||||||
|
use tracing::Level;
|
||||||
|
use tracing_subscriber::filter::Targets;
|
||||||
|
|
||||||
|
#[cfg(not(feature = "journald"))]
|
||||||
|
fn configure_tracing(filter: Targets) -> Result<(), SetGlobalDefaultError> {
|
||||||
|
use tracing_subscriber::layer::SubscriberExt;
|
||||||
|
use tracing_subscriber::{fmt, Layer};
|
||||||
|
|
||||||
|
let stdout_log = fmt::layer().pretty();
|
||||||
|
let subscriber =
|
||||||
|
tracing_subscriber::registry().with(stdout_log.with_filter(filter));
|
||||||
|
set_global_default(subscriber)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "journald")]
|
||||||
|
fn configure_tracing(filter: Targets) -> Result<(), SetGlobalDefaultError> {
|
||||||
|
use tracing_journald::Layer;
|
||||||
|
use tracing_subscriber::layer::SubscriberExt;
|
||||||
|
use tracing_subscriber::registry;
|
||||||
|
|
||||||
|
let subscriber = registry()
|
||||||
|
.with(filter)
|
||||||
|
.with(Layer::new().unwrap().with_field_prefix(None));
|
||||||
|
set_global_default(subscriber)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn init() -> Result<(), SetGlobalDefaultError> {
|
||||||
|
let tracing_filter =
|
||||||
|
Targets::new().with_target("clipboard_subsitutor", Level::DEBUG);
|
||||||
|
configure_tracing(tracing_filter)
|
||||||
|
}
|
32
src/main.rs
32
src/main.rs
|
@ -1,11 +1,12 @@
|
||||||
mod clipboard;
|
mod clipboard;
|
||||||
mod config;
|
mod config;
|
||||||
|
mod logging;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test;
|
mod test;
|
||||||
|
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
use anyhow::{anyhow, Result};
|
use anyhow::{anyhow, bail, Result};
|
||||||
use dirs::config_dir;
|
use dirs::config_dir;
|
||||||
use tracing::debug;
|
use tracing::debug;
|
||||||
|
|
||||||
|
@ -16,7 +17,9 @@ fn main() -> Result<()> {
|
||||||
if check_for_version_arg() {
|
if check_for_version_arg() {
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
configure_tracing();
|
if let Err(e) = logging::init() {
|
||||||
|
bail!(e)
|
||||||
|
};
|
||||||
let config_path = get_config_path()?;
|
let config_path = get_config_path()?;
|
||||||
let config_str =
|
let config_str =
|
||||||
std::fs::read_to_string(config_path.as_path()).unwrap_or_default();
|
std::fs::read_to_string(config_path.as_path()).unwrap_or_default();
|
||||||
|
@ -42,31 +45,6 @@ fn print_version() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(feature = "journald"))]
|
|
||||||
fn configure_tracing() {
|
|
||||||
use tracing::Level;
|
|
||||||
use tracing_subscriber::FmtSubscriber;
|
|
||||||
|
|
||||||
let subscriber = FmtSubscriber::builder()
|
|
||||||
.with_max_level(Level::TRACE)
|
|
||||||
.finish();
|
|
||||||
|
|
||||||
tracing::subscriber::set_global_default(subscriber)
|
|
||||||
.expect("setting default subscriber failed");
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "journald")]
|
|
||||||
fn configure_tracing() {
|
|
||||||
use tracing_journald::Layer;
|
|
||||||
use tracing_subscriber::layer::SubscriberExt;
|
|
||||||
use tracing_subscriber::Registry;
|
|
||||||
|
|
||||||
let subscriber =
|
|
||||||
Registry::default().with(Layer::new().unwrap().with_field_prefix(None));
|
|
||||||
tracing::subscriber::set_global_default(subscriber)
|
|
||||||
.expect("setting default subscriber failed");
|
|
||||||
}
|
|
||||||
|
|
||||||
fn get_config_path() -> Result<PathBuf> {
|
fn get_config_path() -> Result<PathBuf> {
|
||||||
let mut config_path =
|
let mut config_path =
|
||||||
config_dir().ok_or_else(|| anyhow!("Failed to get config dir"))?;
|
config_dir().ok_or_else(|| anyhow!("Failed to get config dir"))?;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue