fix: log to file
This commit is contained in:
19
src/main.rs
19
src/main.rs
@@ -9,9 +9,12 @@ mod overlays;
|
|||||||
mod shaders;
|
mod shaders;
|
||||||
mod state;
|
mod state;
|
||||||
|
|
||||||
use std::sync::{
|
use std::{
|
||||||
|
path::PathBuf,
|
||||||
|
sync::{
|
||||||
atomic::{AtomicBool, Ordering},
|
atomic::{AtomicBool, Ordering},
|
||||||
Arc,
|
Arc,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
@@ -36,18 +39,22 @@ struct Args {
|
|||||||
uninstall: bool,
|
uninstall: bool,
|
||||||
|
|
||||||
/// Path to write logs to
|
/// Path to write logs to
|
||||||
#[arg(short, long, value_name = "FOLDER")]
|
#[arg(short, long, value_name = "FILE_PATH")]
|
||||||
log_to: Option<String>,
|
log_to: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
let args = Args::parse();
|
let args = Args::parse();
|
||||||
if let Some(ref log_to) = args.log_to {
|
let maybe_logfile = std::env::var("WLX_LOGFILE").ok();
|
||||||
|
|
||||||
|
if let Some(ref log_to) = args.log_to.as_ref().or(maybe_logfile.as_ref()) {
|
||||||
|
let file_spec = FileSpec::try_from(PathBuf::from(log_to))?;
|
||||||
flexi_logger::Logger::try_with_env_or_str("info")?
|
flexi_logger::Logger::try_with_env_or_str("info")?
|
||||||
.log_to_file(FileSpec::default().directory(log_to))
|
.log_to_file(file_spec)
|
||||||
.log_to_stdout()
|
.duplicate_to_stderr(flexi_logger::Duplicate::Info)
|
||||||
.start()?;
|
.start()?;
|
||||||
println!("Logging to: {}", &log_to);
|
println!(" ****** Logging to: {} ******", &log_to);
|
||||||
|
println!(" ****** Console logs limited to Info ******");
|
||||||
} else {
|
} else {
|
||||||
flexi_logger::Logger::try_with_env_or_str("info")?.start()?;
|
flexi_logger::Logger::try_with_env_or_str("info")?.start()?;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user