Skip to content

Commit e5ebcc0

Browse files
committed
feat: [#468] deafult logging for API requests
This change enables the default logging for HTTP requests to the API: ``` 2024-02-12T14:15:15.546548923+00:00 [tower_http::trace::make_span][INFO] request; method=GET uri=/v1/about version=HTTP/1.1 2024-02-12T14:15:15.546840151+00:00 [tower_http::trace::on_response][INFO] finished processing request latency=0 ms status=200 2024-02-12T14:15:34.754336133+00:00 [tower_http::trace::make_span][INFO] request; method=GET uri=/v1/about/license version=HTTP/1.1 2024-02-12T14:15:34.754544571+00:00 [tower_http::trace::on_response][INFO] finished processing request latency=0 ms status=200 ```
1 parent c1e01f8 commit e5ebcc0

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/web/api/server/v1/routes.rs

+12-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ use axum::{Json, Router};
99
use serde_json::{json, Value};
1010
use tower_http::compression::CompressionLayer;
1111
use tower_http::cors::CorsLayer;
12+
use tower_http::trace::{DefaultMakeSpan, DefaultOnRequest, DefaultOnResponse, TraceLayer};
13+
use tracing::Level;
1214

1315
use super::contexts::{about, category, proxy, settings, tag, torrent, user};
1416
use crate::bootstrap::config::ENV_VAR_CORS_PERMISSIVE;
@@ -37,7 +39,7 @@ pub fn router(app_data: Arc<AppData>) -> Router {
3739

3840
let router = Router::new()
3941
.route("/", get(redirect_to_about))
40-
.route("/health_check", get(health_check_handler).with_state(app_data))
42+
.route("/health_check", get(health_check_handler).with_state(app_data.clone()))
4143
.nest(&format!("/{API_VERSION_URL_PREFIX}"), v1_api_routes);
4244

4345
let router = if env::var(ENV_VAR_CORS_PERMISSIVE).is_ok() {
@@ -46,7 +48,15 @@ pub fn router(app_data: Arc<AppData>) -> Router {
4648
router
4749
};
4850

49-
router.layer(DefaultBodyLimit::max(10_485_760)).layer(CompressionLayer::new())
51+
router
52+
.layer(DefaultBodyLimit::max(10_485_760))
53+
.layer(CompressionLayer::new())
54+
.layer(
55+
TraceLayer::new_for_http()
56+
.make_span_with(DefaultMakeSpan::new().level(Level::INFO))
57+
.on_request(DefaultOnRequest::new().level(Level::INFO))
58+
.on_response(DefaultOnResponse::new().level(Level::INFO)),
59+
)
5060
}
5161

5262
/// Endpoint for container health check.

0 commit comments

Comments
 (0)