diff --git a/src/core/config/mod.rs b/src/core/config/mod.rs
index 665cbe20383acdd2198d5b6be161408cc38d61b5..bb13923beb37369a8ec84a317c573de5c2357933 100644
--- a/src/core/config/mod.rs
+++ b/src/core/config/mod.rs
@@ -975,7 +975,8 @@ fn default_tracing_flame_output_path() -> String { "./tracing.folded".to_owned()
 
 fn default_trusted_servers() -> Vec<OwnedServerName> { vec![OwnedServerName::try_from("matrix.org").unwrap()] }
 
-fn default_log() -> String {
+#[must_use]
+pub fn default_log() -> String {
 	// do debug logging by default for debug builds
 	if cfg!(debug_assertions) {
 		"debug".to_owned()
diff --git a/src/main/server.rs b/src/main/server.rs
index d960bfac34d50a3f5af51b44b7200dee41d9884c..8e61d502e443b4eb65f3557b20a1d695f381db09 100644
--- a/src/main/server.rs
+++ b/src/main/server.rs
@@ -1,6 +1,7 @@
 use std::sync::Arc;
 
 use conduit::{
+	config,
 	config::Config,
 	info,
 	log::{LogLevelReloadHandles, ReloadHandle},
@@ -103,7 +104,7 @@ fn init_tracing(config: &Config) -> (LogLevelReloadHandles, TracingFlameGuard) {
 		Ok(s) => s,
 		Err(e) => {
 			eprintln!("It looks like your config is invalid. The following error occured while parsing it: {e}");
-			EnvFilter::try_new("warn").unwrap()
+			EnvFilter::try_new(config::default_log()).expect("failed to set default EnvFilter")
 		},
 	};