summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authorcyqsimon <28627918+cyqsimon@users.noreply.github.com>2023-10-11 18:16:56 +0800
committerGitHub <noreply@github.com>2023-10-11 18:16:56 +0800
commit94ada5db8a8d82194a7f1dd05694fc4e2a8fc78b (patch)
treee819a44e34c1a62c99dba83d6d935ae117cd8ddb /src/main.rs
parent5cb09cca196a3a23ad059dc163ce3ceb540cf894 (diff)
Add logging infrastructure (#302)
* Add logging dependencies * Initialise logging
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs
index 2ba7f97..f55a116 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -9,6 +9,7 @@ mod tests;
use std::{
collections::HashMap,
+ fs::File,
sync::{
atomic::{AtomicBool, AtomicUsize, Ordering},
Arc, Mutex, RwLock,
@@ -29,6 +30,7 @@ use network::{
};
use pnet::datalink::{DataLinkReceiver, NetworkInterface};
use ratatui::backend::{Backend, CrosstermBackend};
+use simplelog::WriteLogger;
use crate::cli::Opt;
@@ -36,8 +38,18 @@ const DISPLAY_DELTA: Duration = Duration::from_millis(1000);
fn main() -> anyhow::Result<()> {
let opts = Opt::parse();
- let os_input = os::get_input(opts.interface.as_deref(), !opts.no_resolve, opts.dns_server)?;
+ // init logging
+ if let Some(ref log_path) = opts.log_to {
+ let log_file = File::options().create_new(true).open(log_path)?;
+ WriteLogger::init(
+ opts.verbosity.log_level_filter(),
+ Default::default(),
+ log_file,
+ )?;
+ }
+
+ let os_input = os::get_input(opts.interface.as_deref(), !opts.no_resolve, opts.dns_server)?;
if opts.raw {
let terminal_backend = RawTerminalBackend {};
start(terminal_backend, os_input, opts);