33
44use crate :: writers:: { FileWriter , NoopWriter , StdoutWriter } ;
55use ddcommon_ffi:: Error ;
6- use once_cell:: sync:: Lazy ;
76use std:: cmp:: PartialOrd ;
87use std:: io;
98use std:: io:: Write ;
109use std:: path:: Path ;
10+ use std:: sync:: OnceLock ;
1111use std:: sync:: { Arc , Mutex } ;
1212use tracing:: Level ;
1313use tracing_subscriber:: filter:: LevelFilter ;
@@ -219,10 +219,11 @@ impl From<LogEventLevel> for LevelFilter {
219219 }
220220}
221221
222- static LOGGER : Lazy < Mutex < Option < Logger > > > = Lazy :: new ( || Mutex :: new ( None ) ) ;
222+ static LOGGER : OnceLock < Mutex < Option < Logger > > > = OnceLock :: new ( ) ;
223223
224224pub fn logger_configure ( config : LoggerConfig ) -> Result < ( ) , Error > {
225- let mut logger_guard = LOGGER
225+ let logger_mutex = LOGGER . get_or_init ( || Mutex :: new ( None ) ) ;
226+ let mut logger_guard = logger_mutex
226227 . lock ( )
227228 . map_err ( |e| Error :: from ( format ! ( "Failed to acquire logger lock: {}" , e) ) ) ?;
228229
@@ -240,7 +241,8 @@ pub fn logger_configure(config: LoggerConfig) -> Result<(), Error> {
240241
241242pub fn logger_set_log_level ( log_level : LogEventLevel ) -> Result < ( ) , Error > {
242243 let level_filter = LevelFilter :: from ( log_level) ;
243- let logger = LOGGER
244+ let logger_mutex = LOGGER . get_or_init ( || Mutex :: new ( None ) ) ;
245+ let logger = logger_mutex
244246 . lock ( )
245247 . map_err ( |e| Error :: from ( format ! ( "Failed to acquire logger lock: {}" , e) ) ) ?;
246248
0 commit comments