Added log levels
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
port = 1965
|
||||
# use "::" for ipv6 and ipv4 or "0.0.0.0" for ipv4 only
|
||||
host = "::"
|
||||
# log is optional and server wide. It defaults to info if not set. Other levels
|
||||
# are error, warn, and info. If error is set it will only show error. If warn
|
||||
# is set it will show error and warn. Info shows all three.
|
||||
log = "info"
|
||||
|
||||
# There must be at least 1 server tag if a client doesn't send sni the server
|
||||
# will use this tag as its default.
|
||||
|
||||
@@ -8,6 +8,7 @@ use toml::de::Error;
|
||||
pub struct Config {
|
||||
pub port: u16,
|
||||
pub host: String,
|
||||
pub log: Option<String>,
|
||||
pub server: Vec<Server>,
|
||||
}
|
||||
|
||||
|
||||
16
src/main.rs
16
src/main.rs
@@ -300,7 +300,6 @@ async fn handle_connection(
|
||||
}
|
||||
|
||||
fn main() -> io::Result<()> {
|
||||
simple_logger::init_with_level(log::Level::Info).unwrap();
|
||||
let args: Vec<String> = env::args().collect();
|
||||
if args.len() != 2 {
|
||||
println!("Please run with the path to the config file.");
|
||||
@@ -319,6 +318,21 @@ fn main() -> io::Result<()> {
|
||||
return Ok(());
|
||||
},
|
||||
};
|
||||
let loglev = match &cfg.log {
|
||||
None => log::Level::Info,
|
||||
Some(l) => {
|
||||
match l.as_str() {
|
||||
"error" => log::Level::Error,
|
||||
"warn" => log::Level::Warn,
|
||||
"info" => log::Level::Info,
|
||||
_ => {
|
||||
eprintln!("Incorrect log level in config file.");
|
||||
return Ok(());
|
||||
},
|
||||
}
|
||||
},
|
||||
};
|
||||
simple_logger::init_with_level(loglev).unwrap();
|
||||
let cmap = cfg.to_map();
|
||||
let default = &cfg.server[0].hostname;
|
||||
println!("Serving {} vhosts", cfg.server.len());
|
||||
|
||||
Reference in New Issue
Block a user