Disable ANSI colors in logs and fix fail2ban regex
- Add with_ansi(false) to all tracing_subscriber fmt layers so log output (both stdout and file) is plain text without escape codes. This is critical for Docker deployments and fail2ban log parsing. - Remove ^ anchor from fail2ban failregex since log lines have a timestamp/level prefix before RATE_LIMIT.
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
[Definition]
|
||||
failregex = ^RATE_LIMIT client_ip=<HOST> host=\S+ path=\S+ status=\d+$
|
||||
failregex = RATE_LIMIT client_ip=<HOST> host=\S+ path=\S+ status=\d+
|
||||
ignoreregex =
|
||||
@@ -51,7 +51,7 @@ fn init_json(env_filter: EnvFilter, log_file_path: &Option<String>, level: Level
|
||||
}
|
||||
None => {
|
||||
let layer = tracing_subscriber::fmt::layer()
|
||||
.json()
|
||||
.with_ansi(false)
|
||||
.with_filter(env_filter);
|
||||
tracing_subscriber::registry().with(layer).try_init()?;
|
||||
}
|
||||
@@ -72,8 +72,11 @@ fn init_text(env_filter: EnvFilter, log_file_path: &Option<String>, level: Level
|
||||
let file_writer = Arc::new(file);
|
||||
|
||||
let file_env_filter = make_env_filter(level);
|
||||
let stdout_layer = tracing_subscriber::fmt::layer().with_filter(env_filter);
|
||||
let stdout_layer = tracing_subscriber::fmt::layer()
|
||||
.with_ansi(false)
|
||||
.with_filter(env_filter);
|
||||
let file_layer = tracing_subscriber::fmt::layer()
|
||||
.with_ansi(false)
|
||||
.with_writer(file_writer)
|
||||
.with_filter(file_env_filter);
|
||||
tracing_subscriber::registry()
|
||||
@@ -82,7 +85,9 @@ fn init_text(env_filter: EnvFilter, log_file_path: &Option<String>, level: Level
|
||||
.try_init()?;
|
||||
}
|
||||
None => {
|
||||
let layer = tracing_subscriber::fmt::layer().with_filter(env_filter);
|
||||
let layer = tracing_subscriber::fmt::layer()
|
||||
.with_ansi(false)
|
||||
.with_filter(env_filter);
|
||||
tracing_subscriber::registry().with(layer).try_init()?;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user