init_log once
This commit is contained in:
		
							parent
							
								
									fb12ee7f2a
								
							
						
					
					
						commit
						6cbbb6498f
					
				@ -350,45 +350,48 @@ pub fn is_domain_port_str(id: &str) -> bool {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub fn init_log(_is_async: bool, _name: &str) -> Option<flexi_logger::LoggerHandle> {
 | 
					pub fn init_log(_is_async: bool, _name: &str) -> Option<flexi_logger::LoggerHandle> {
 | 
				
			||||||
    #[cfg(debug_assertions)]
 | 
					    static INIT: std::sync::Once = std::sync::Once::new();
 | 
				
			||||||
    {
 | 
					    #[allow(unused_mut)]
 | 
				
			||||||
        use env_logger::*;
 | 
					    let mut logger_holder: Option<flexi_logger::LoggerHandle> = None;
 | 
				
			||||||
        init_from_env(Env::default().filter_or(DEFAULT_FILTER_ENV, "info"));
 | 
					    INIT.call_once(|| {
 | 
				
			||||||
        None
 | 
					        #[cfg(debug_assertions)]
 | 
				
			||||||
    }
 | 
					        {
 | 
				
			||||||
    #[cfg(not(debug_assertions))]
 | 
					            use env_logger::*;
 | 
				
			||||||
    {
 | 
					            init_from_env(Env::default().filter_or(DEFAULT_FILTER_ENV, "info"));
 | 
				
			||||||
        // https://docs.rs/flexi_logger/latest/flexi_logger/error_info/index.html#write
 | 
					 | 
				
			||||||
        // though async logger more efficient, but it also causes more problems, disable it for now
 | 
					 | 
				
			||||||
        let mut logger_holder: Option<flexi_logger::LoggerHandle> = None;
 | 
					 | 
				
			||||||
        let mut path = config::Config::log_path();
 | 
					 | 
				
			||||||
        #[cfg(target_os = "android")]
 | 
					 | 
				
			||||||
        if !config::Config::get_home().exists() {
 | 
					 | 
				
			||||||
            return None;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if !_name.is_empty() {
 | 
					        #[cfg(not(debug_assertions))]
 | 
				
			||||||
            path.push(_name);
 | 
					        {
 | 
				
			||||||
 | 
					            // https://docs.rs/flexi_logger/latest/flexi_logger/error_info/index.html#write
 | 
				
			||||||
 | 
					            // though async logger more efficient, but it also causes more problems, disable it for now
 | 
				
			||||||
 | 
					            let mut path = config::Config::log_path();
 | 
				
			||||||
 | 
					            #[cfg(target_os = "android")]
 | 
				
			||||||
 | 
					            if !config::Config::get_home().exists() {
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if !_name.is_empty() {
 | 
				
			||||||
 | 
					                path.push(_name);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            use flexi_logger::*;
 | 
				
			||||||
 | 
					            if let Ok(x) = Logger::try_with_env_or_str("debug") {
 | 
				
			||||||
 | 
					                logger_holder = x
 | 
				
			||||||
 | 
					                    .log_to_file(FileSpec::default().directory(path))
 | 
				
			||||||
 | 
					                    .write_mode(if _is_async {
 | 
				
			||||||
 | 
					                        WriteMode::Async
 | 
				
			||||||
 | 
					                    } else {
 | 
				
			||||||
 | 
					                        WriteMode::Direct
 | 
				
			||||||
 | 
					                    })
 | 
				
			||||||
 | 
					                    .format(opt_format)
 | 
				
			||||||
 | 
					                    .rotate(
 | 
				
			||||||
 | 
					                        Criterion::Age(Age::Day),
 | 
				
			||||||
 | 
					                        Naming::Timestamps,
 | 
				
			||||||
 | 
					                        Cleanup::KeepLogFiles(6),
 | 
				
			||||||
 | 
					                    )
 | 
				
			||||||
 | 
					                    .start()
 | 
				
			||||||
 | 
					                    .ok();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        use flexi_logger::*;
 | 
					    });
 | 
				
			||||||
        if let Ok(x) = Logger::try_with_env_or_str("debug") {
 | 
					    logger_holder
 | 
				
			||||||
            logger_holder = x
 | 
					 | 
				
			||||||
                .log_to_file(FileSpec::default().directory(path))
 | 
					 | 
				
			||||||
                .write_mode(if _is_async {
 | 
					 | 
				
			||||||
                    WriteMode::Async
 | 
					 | 
				
			||||||
                } else {
 | 
					 | 
				
			||||||
                    WriteMode::Direct
 | 
					 | 
				
			||||||
                })
 | 
					 | 
				
			||||||
                .format(opt_format)
 | 
					 | 
				
			||||||
                .rotate(
 | 
					 | 
				
			||||||
                    Criterion::Age(Age::Day),
 | 
					 | 
				
			||||||
                    Naming::Timestamps,
 | 
					 | 
				
			||||||
                    Cleanup::KeepLogFiles(6),
 | 
					 | 
				
			||||||
                )
 | 
					 | 
				
			||||||
                .start()
 | 
					 | 
				
			||||||
                .ok();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        logger_holder
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[cfg(test)]
 | 
					#[cfg(test)]
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user