Update logger to properly shutdown when process exits

pull/38/head v0.12.0
Chip Senkbeil 3 years ago
parent 69af44cb8e
commit 33abcbb5fb
No known key found for this signature in database
GPG Key ID: 35EF1F8EC72A4131

2
Cargo.lock generated

@ -179,7 +179,7 @@ dependencies = [
[[package]]
name = "distant"
version = "0.11.0"
version = "0.12.0"
dependencies = [
"bytes",
"derive_more",

@ -2,7 +2,7 @@
name = "distant"
description = "Operate on a remote computer through file and process manipulation"
categories = ["command-line-utilities"]
version = "0.11.0"
version = "0.12.0"
authors = ["Chip Senkbeil <chip@senkbeil.org>"]
edition = "2018"
homepage = "https://github.com/chipsenkbeil/distant"

@ -78,14 +78,17 @@ pub enum ExitCode {
/// Main entrypoint into the program
pub fn run() {
let opt = cli::opt::Opt::load();
init_logging(&opt.common);
let logger = init_logging(&opt.common);
if let Err(x) = opt.subcommand.run(opt.common) {
error!("{}", x);
error!("Exiting due to error: {}", x);
logger.flush();
logger.shutdown();
std::process::exit(x.to_i32());
}
}
fn init_logging(opt: &cli::opt::CommonOpt) {
fn init_logging(opt: &cli::opt::CommonOpt) -> flexi_logger::LoggerHandle {
use flexi_logger::{FileSpec, LevelFilter, LogSpecification, Logger};
let module = "distant";
@ -116,5 +119,5 @@ fn init_logging(opt: &cli::opt::CommonOpt) {
logger
};
logger.start().expect("Failed to initialize logger");
logger.start().expect("Failed to initialize logger")
}

Loading…
Cancel
Save