add debug supressions feature
This commit is contained in:
@@ -54,6 +54,10 @@ pub struct LogHandlerConfig {
|
|||||||
/// Number of recent log messages to buffer per origin
|
/// Number of recent log messages to buffer per origin
|
||||||
#[conf(long, env, default_value = "64")]
|
#[conf(long, env, default_value = "64")]
|
||||||
pub log_buffer_size: usize,
|
pub log_buffer_size: usize,
|
||||||
|
/// Debug logging level for suppressed messages.
|
||||||
|
/// 0 = no logging, 1 = log only overall limiter, 2 = log routes + overall, 3 = log all.
|
||||||
|
#[conf(long, env, default_value = "0")]
|
||||||
|
pub debug_suppressions: u16,
|
||||||
/// Log message formatting options.
|
/// Log message formatting options.
|
||||||
#[conf(flatten)]
|
#[conf(flatten)]
|
||||||
pub log_format: LogFormatConfig,
|
pub log_format: LogFormatConfig,
|
||||||
@@ -161,8 +165,16 @@ impl LogHandler {
|
|||||||
let rate_limit_result = self.check_rate_limiters(&log_msg, &origin).await;
|
let rate_limit_result = self.check_rate_limiters(&log_msg, &origin).await;
|
||||||
|
|
||||||
if let Err(reason) = &rate_limit_result {
|
if let Err(reason) = &rate_limit_result {
|
||||||
let sev = log_msg.level.to_str();
|
let should_log = match self.config.debug_suppressions {
|
||||||
info!("Suppressed {sev} ({reason}):\n{}", log_msg.msg);
|
0 => false,
|
||||||
|
1 => matches!(reason, SuppressionReason::OverallLimiter(_)),
|
||||||
|
2 => !matches!(reason, SuppressionReason::NoRoutes),
|
||||||
|
_ => true,
|
||||||
|
};
|
||||||
|
if should_log {
|
||||||
|
let sev = log_msg.level.to_str();
|
||||||
|
info!("Suppressed {sev} ({reason}):\n{}", log_msg.msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get or create the buffer for this origin, then record the message
|
// Get or create the buffer for this origin, then record the message
|
||||||
|
|||||||
Reference in New Issue
Block a user