@@ -6,10 +6,8 @@ use oxcache::server::{RUNTIME, Server};
66use std:: fs;
77use std:: process:: exit;
88use std:: sync:: OnceLock ;
9- use tracing_appender:: non_blocking;
9+ use tracing_appender:: { non_blocking, rolling } ;
1010use tracing_subscriber:: { EnvFilter , Layer , fmt, layer:: SubscriberExt , util:: SubscriberInitExt } ;
11- use flate2:: write:: GzEncoder ;
12- use flate2:: Compression ;
1311
1412async fn async_main ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
1513 let cli = CliArgs :: parse ( ) ;
@@ -93,13 +91,11 @@ pub fn init_logging(level: &str, metrics_directory: Option<&str>) {
9391 . compact ( )
9492 . with_filter ( EnvFilter :: new ( format ! ( "{},metrics=off" , directive) ) ) ;
9593
96- // Metrics in log dir - always compressed with gzip
94+ // Metrics in log dir
9795 let date = chrono:: Local :: now ( ) . format ( "%Y-%m-%d-%H-%M-%S" ) . to_string ( ) ;
98- let filename = format ! ( "{}/metrics-{}.json.gz" , metrics_dir, date) ;
99- let file = fs:: File :: create ( & filename)
100- . expect ( "Failed to create metrics file" ) ;
101- let encoder = GzEncoder :: new ( file, Compression :: default ( ) ) ;
102- let ( metrics_nb, guard) = non_blocking ( encoder) ;
96+ let filename = format ! ( "metrics-{}.json" , date) ;
97+ let metrics_file = rolling:: never ( metrics_dir, filename) ;
98+ let ( metrics_nb, guard) = non_blocking ( metrics_file) ;
10399 let _ = METRICS_GUARD . set ( guard) ;
104100
105101 // JSON formatting for metrics
0 commit comments