From 6f05da86208b74517db1fda53f359d29ea56501b Mon Sep 17 00:00:00 2001 From: Jun Kurihara Date: Mon, 11 Jul 2022 22:11:48 +0900 Subject: [PATCH] fix log --- bench/bench.sh | 6 +++--- bench/docker-compose.yml | 2 +- src/msg_handler/handler.rs | 4 ++-- src/msg_handler/utils_request.rs | 12 ++++++++++-- src/msg_handler/utils_response.rs | 32 +++++++++++++++++++++++++++++-- 5 files changed, 46 insertions(+), 10 deletions(-) diff --git a/bench/bench.sh b/bench/bench.sh index a0d1bf2..0f4d2da 100644 --- a/bench/bench.sh +++ b/bench/bench.sh @@ -16,14 +16,14 @@ echo "----------------------------" echo "Benchmark on rpxy" #wrk -t8 -c100 -d30s http://127.0.0.1:8080/index.html -rewrk -c 256 -t 8 -d 15s -h http://localhost:8080 --pct +rewrk -c 512 -t 4 -d 10s -h http://localhost:8080 --pct echo "----------------------------" echo "Benchmark on nginx" # wrk -t8 -c100 -d30s http://127.0.0.1:8090/index.html -rewrk -c 256 -t 8 -d 15s -h http://localhost:8090 --pct +rewrk -c 512 -t 4 -d 10s -h http://localhost:8090 --pct echo "----------------------------" echo "Benchmark on caddy" # wrk -t8 -c100 -d30s http://127.0.0.1:8100/index.html -rewrk -c 256 -t 8 -d 15s -h http://localhost:8100 --pct +rewrk -c 512 -t 4 -d 10s -h http://localhost:8100 --pct diff --git a/bench/docker-compose.yml b/bench/docker-compose.yml index 9873d40..e7bf65d 100644 --- a/bench/docker-compose.yml +++ b/bench/docker-compose.yml @@ -26,7 +26,7 @@ services: context: ../ restart: unless-stopped environment: - - LOG_LEVEL=debug + - LOG_LEVEL=info - LOG_TO_FILE=false ports: - 127.0.0.1:8080:8080 diff --git a/src/msg_handler/handler.rs b/src/msg_handler/handler.rs index f00cc1a..59ed44c 100644 --- a/src/msg_handler/handler.rs +++ b/src/msg_handler/handler.rs @@ -30,7 +30,7 @@ where listen_addr: SocketAddr, tls_enabled: bool, ) -> Result> { - req.log(&client_addr, Some("(Request from Client)")); + req.log_debug(&client_addr, Some("(Request from Client)")); // Here we start to handle with server_name // Find backend application for given server_name, and drop if incoming request is invalid as request. @@ -98,7 +98,7 @@ where return http_error(StatusCode::BAD_REQUEST); } }; - res_backend.log( + res_backend.log_debug( &backend.server_name, &client_addr, Some("(Response from Backend)"), diff --git a/src/msg_handler/utils_request.rs b/src/msg_handler/utils_request.rs index ed3af21..fe9433d 100644 --- a/src/msg_handler/utils_request.rs +++ b/src/msg_handler/utils_request.rs @@ -6,9 +6,17 @@ use std::fmt::Display; // Functions of utils for request messages pub trait ReqLog { fn log(self, src: &T, extra: Option<&str>); + fn log_debug(self, src: &T, extra: Option<&str>); + fn build_message(self, src: &T, extra: Option<&str>) -> String; } impl ReqLog for &Request { fn log(self, src: &T, extra: Option<&str>) { + info!("{}", &self.build_message(src, extra)); + } + fn log_debug(self, src: &T, extra: Option<&str>) { + debug!("{}", &self.build_message(src, extra)); + } + fn build_message(self, src: &T, extra: Option<&str>) -> String { let canonical_src = src.to_canonical(); let server_name = self.headers().get(header::HOST).map_or_else( @@ -20,7 +28,7 @@ impl ReqLog for &Request { }, |h| h.to_str().unwrap_or(""), ); - info!( + format!( "{} <- {} -- {} {:?} {:?} {:?} {}", server_name, canonical_src, @@ -32,7 +40,7 @@ impl ReqLog for &Request { .map_or_else(|| "", |v| v.as_str()), self.headers(), extra.map_or_else(|| "", |v| v) - ); + ) } } diff --git a/src/msg_handler/utils_response.rs b/src/msg_handler/utils_response.rs index 67da694..3bcf89f 100644 --- a/src/msg_handler/utils_response.rs +++ b/src/msg_handler/utils_response.rs @@ -11,6 +11,18 @@ pub trait ResLog { client_addr: &T2, extra: Option<&str>, ); + fn log_debug( + self, + server_name: &T1, + client_addr: &T2, + extra: Option<&str>, + ); + fn build_message( + self, + server_name: &T1, + client_addr: &T2, + extra: Option<&str>, + ) -> String; } impl ResLog for &Response { fn log( @@ -19,8 +31,24 @@ impl ResLog for &Response { client_addr: &T2, extra: Option<&str>, ) { + info!("{}", &self.build_message(server_name, client_addr, extra)); + } + fn log_debug( + self, + server_name: &T1, + client_addr: &T2, + extra: Option<&str>, + ) { + debug!("{}", &self.build_message(server_name, client_addr, extra)); + } + fn build_message( + self, + server_name: &T1, + client_addr: &T2, + extra: Option<&str>, + ) -> String { let canonical_client_addr = client_addr.to_canonical(); - info!( + format!( "{} <- {} -- {} {:?} {:?} {}", canonical_client_addr, server_name, @@ -28,6 +56,6 @@ impl ResLog for &Response { self.version(), self.headers(), extra.map_or_else(|| "", |v| v) - ); + ) } }