From cbd3eb41a1bd1052fa8efd7dc979d6862408b41c Mon Sep 17 00:00:00 2001 From: Jun Kurihara Date: Tue, 21 May 2024 02:37:47 +0900 Subject: [PATCH] chore: refactor --- docker/docker-compose-slim.yml | 1 - docker/docker-compose.yml | 1 - rpxy-bin/src/log.rs | 50 ++++++++++++------- .../handler_manipulate_messages.rs | 11 +--- 4 files changed, 34 insertions(+), 29 deletions(-) diff --git a/docker/docker-compose-slim.yml b/docker/docker-compose-slim.yml index 57f9cc9..e02c20b 100644 --- a/docker/docker-compose-slim.yml +++ b/docker/docker-compose-slim.yml @@ -1,4 +1,3 @@ -version: "3" services: rpxy-rp: image: jqtype/rpxy:slim # ghcr.io/junkurihara/rust-rpxy:slim also works diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 0c95fc6..435dcb3 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,4 +1,3 @@ -version: "3" services: rpxy-rp: image: jqtype/rpxy:latest # ghcr.io/junkurihara/rust-rpxy:latest also works diff --git a/rpxy-bin/src/log.rs b/rpxy-bin/src/log.rs index 7076fac..4076943 100644 --- a/rpxy-bin/src/log.rs +++ b/rpxy-bin/src/log.rs @@ -9,22 +9,36 @@ pub fn init_logger() { let level_string = std::env::var("RUST_LOG").unwrap_or_else(|_| "info".to_string()); let level = tracing::Level::from_str(level_string.as_str()).unwrap_or(tracing::Level::INFO); - // This limits the logger to emits only this crate with any level, for included crates it will emit only INFO or above level. - let stdio_layer = fmt::layer() - .with_line_number(true) - .with_thread_ids(false) - .with_thread_names(true) - .with_target(true) - .with_level(true) - .compact() - .with_filter(tracing_subscriber::filter::filter_fn(move |metadata| { - (metadata - .target() - .starts_with(env!("CARGO_PKG_NAME").replace('-', "_").as_str()) - && metadata.level() <= &level) - || metadata.level() <= &tracing::Level::INFO.min(level) - })); - - let reg = tracing_subscriber::registry().with(stdio_layer); - reg.init(); + // This limits the logger to emits only this crate with any level above RUST_LOG, for included crates it will emit only ERROR (in prod)/INFO (in dev) or above level. + let stdio_layer = fmt::layer().with_level(true).with_thread_ids(false); + if level <= tracing::Level::INFO { + // in normal deployment environment + let stdio_layer = stdio_layer + .with_target(false) + .compact() + .with_filter(tracing_subscriber::filter::filter_fn(move |metadata| { + (metadata + .target() + .starts_with(env!("CARGO_PKG_NAME").replace('-', "_").as_str()) + && metadata.level() <= &level) + || metadata.level() <= &tracing::Level::ERROR.min(level) + })); + tracing_subscriber::registry().with(stdio_layer).init(); + } else { + // debugging + let stdio_layer = stdio_layer + .with_line_number(true) + .with_target(true) + .with_thread_names(true) + .with_target(true) + .compact() + .with_filter(tracing_subscriber::filter::filter_fn(move |metadata| { + (metadata + .target() + .starts_with(env!("CARGO_PKG_NAME").replace('-', "_").as_str()) + && metadata.level() <= &level) + || metadata.level() <= &tracing::Level::INFO.min(level) + })); + tracing_subscriber::registry().with(stdio_layer).init(); + }; } diff --git a/rpxy-lib/src/message_handler/handler_manipulate_messages.rs b/rpxy-lib/src/message_handler/handler_manipulate_messages.rs index ecfd53c..fe55fe5 100644 --- a/rpxy-lib/src/message_handler/handler_manipulate_messages.rs +++ b/rpxy-lib/src/message_handler/handler_manipulate_messages.rs @@ -21,11 +21,7 @@ where #[allow(unused_variables)] /// Manipulate a response message sent from a backend application to forward downstream to a client. - pub(super) fn generate_response_forwarded( - &self, - response: &mut Response, - backend_app: &BackendApp, - ) -> Result<()> { + pub(super) fn generate_response_forwarded(&self, response: &mut Response, backend_app: &BackendApp) -> Result<()> { let headers = response.headers_mut(); remove_connection_header(headers); remove_hop_header(headers); @@ -102,11 +98,8 @@ where // by default, add "host" header of original server_name if not exist if req.headers().get(header::HOST).is_none() { let org_host = req.uri().host().ok_or_else(|| anyhow!("Invalid request"))?.to_owned(); - req - .headers_mut() - .insert(header::HOST, HeaderValue::from_str(&org_host)?); + req.headers_mut().insert(header::HOST, HeaderValue::from_str(&org_host)?); }; - println!("{:?}", req.headers().get(header::HOST)); ///////////////////////////////////////////// // Fix unique upstream destination since there could be multiple ones.