fix: unable to initialize logger in windows
fixes #248 regression
Diff
src/bin/server.rs | 10 +++++-----
src/logger.rs | 4 +++-
src/server.rs | 5 +----
src/settings/mod.rs | 8 +++++---
src/winservice.rs | 5 +++--
5 files changed, 17 insertions(+), 15 deletions(-)
@@ -12,16 +12,16 @@
#[global_allocator]
static GLOBAL: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc;
use static_web_server::Result;
use static_web_server::{Result, Settings};
fn main() -> Result {
let opts = Settings::get(true)?;
#[cfg(windows)]
{
use static_web_server::settings::{Commands, Settings};
use static_web_server::settings::Commands;
use static_web_server::winservice;
let opts = Settings::get()?;
if let Some(commands) = opts.general.commands {
match commands {
Commands::Install {} => {
@@ -37,7 +37,7 @@ fn main() -> Result {
}
static_web_server::Server::new()?.run_standalone()?;
static_web_server::Server::new(opts)?.run_standalone()?;
Ok(())
}
@@ -22,7 +22,9 @@ pub fn init(log_level: &str) -> Result {
fn configure(level: &str) -> Result {
let level = level.parse::<Level>()?;
let level = level
.parse::<Level>()
.with_context(|| "failed to parse log level")?;
#[cfg(not(windows))]
let enable_ansi = true;
@@ -36,10 +36,7 @@ pub struct Server {
impl Server {
pub fn new() -> Result<Server> {
let opts = Settings::get()?;
pub fn new(opts: Settings) -> Result<Server> {
let cpus = num_cpus::get();
let worker_threads = match opts.general.threads_multiplier {
@@ -75,7 +75,7 @@ impl Settings {
pub fn get() -> Result<Settings> {
pub fn get(log_init: bool) -> Result<Settings> {
let opts = General::parse();
@@ -283,7 +283,9 @@ impl Settings {
}
logger::init(log_level.as_str())?;
if log_init {
logger::init(log_level.as_str())?;
}
tracing::debug!("toml configuration file read successfully");
@@ -407,7 +409,7 @@ impl Settings {
redirects: redirects_entries,
});
}
} else {
} else if log_init {
logger::init(log_level.as_str())?;
}
@@ -72,7 +72,8 @@ fn set_service_state(
}
fn run_service() -> Result {
let _ = Settings::get()?;
let opts = Settings::get(false)?;
tracing::info!("windows service: starting service setup");
@@ -132,7 +133,7 @@ fn run_service() -> Result {
};
match Server::new() {
match Server::new(opts) {
Ok(server) => {
if let Err(err) = server.run_as_service(Some(shutdown_rx), stop_handler) {
tracing::error!(