From 6e0cd2a5bf704695982d7082871e6a89009a5c15 Mon Sep 17 00:00:00 2001 From: sigoden Date: Mon, 18 Aug 2025 08:50:05 +0800 Subject: [PATCH] feat: log decoded uri --- src/http_logger.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/http_logger.rs b/src/http_logger.rs index b296c67..9e466b4 100644 --- a/src/http_logger.rs +++ b/src/http_logger.rs @@ -1,6 +1,6 @@ use std::{collections::HashMap, str::FromStr}; -use crate::{auth::get_auth_user, server::Request}; +use crate::{auth::get_auth_user, server::Request, utils::decode_uri}; pub const DEFAULT_LOG_FORMAT: &str = r#"$remote_addr "$request" $status"#; @@ -29,7 +29,9 @@ impl HttpLogger { match element { LogElement::Variable(name) => match name.as_str() { "request" => { - data.insert(name.to_string(), format!("{} {}", req.method(), req.uri())); + let uri = req.uri().to_string(); + let uri = decode_uri(&uri).map(|s| s.to_string()).unwrap_or(uri); + data.insert(name.to_string(), format!("{} {uri}", req.method())); } "remote_user" => { if let Some(user) = @@ -50,6 +52,7 @@ impl HttpLogger { } data } + pub fn log(&self, data: &HashMap, err: Option) { if self.elements.is_empty() { return;