diff options
author | cyqsimon <28627918+cyqsimon@users.noreply.github.com> | 2023-10-11 18:16:56 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-11 18:16:56 +0800 |
commit | 94ada5db8a8d82194a7f1dd05694fc4e2a8fc78b (patch) | |
tree | e819a44e34c1a62c99dba83d6d935ae117cd8ddb /src/main.rs | |
parent | 5cb09cca196a3a23ad059dc163ce3ceb540cf894 (diff) |
Add logging infrastructure (#302)
* Add logging dependencies
* Initialise logging
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 14 |
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); |