@@ -9,6 +9,8 @@ use axum::{Json, Router};
9
9
use serde_json:: { json, Value } ;
10
10
use tower_http:: compression:: CompressionLayer ;
11
11
use tower_http:: cors:: CorsLayer ;
12
+ use tower_http:: trace:: { DefaultMakeSpan , DefaultOnRequest , DefaultOnResponse , TraceLayer } ;
13
+ use tracing:: Level ;
12
14
13
15
use super :: contexts:: { about, category, proxy, settings, tag, torrent, user} ;
14
16
use crate :: bootstrap:: config:: ENV_VAR_CORS_PERMISSIVE ;
@@ -37,7 +39,7 @@ pub fn router(app_data: Arc<AppData>) -> Router {
37
39
38
40
let router = Router :: new ( )
39
41
. 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 ( ) ) )
41
43
. nest ( & format ! ( "/{API_VERSION_URL_PREFIX}" ) , v1_api_routes) ;
42
44
43
45
let router = if env:: var ( ENV_VAR_CORS_PERMISSIVE ) . is_ok ( ) {
@@ -46,7 +48,15 @@ pub fn router(app_data: Arc<AppData>) -> Router {
46
48
router
47
49
} ;
48
50
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
+ )
50
60
}
51
61
52
62
/// Endpoint for container health check.
0 commit comments