hyperlane_log/log/
utils.rs1use crate::*;
2
3pub(crate) fn get_second_element_from_filename(dir_path: &str) -> usize {
4 let mut res_idx: usize = DEFAULT_LOG_FILE_START_IDX;
5 if let Ok(entries) = read_dir(dir_path) {
6 for entry in entries.filter_map(Result::ok) {
7 let file_name: String = entry.file_name().to_string_lossy().to_string();
8 let parts: Vec<&str> = file_name.split(POINT).collect();
9 if parts.len() > 1 {
10 if let Ok(second_element) = parts[1].parse::<usize>() {
11 res_idx = second_element.max(res_idx);
12 }
13 }
14 }
15 }
16 res_idx.max(DEFAULT_LOG_FILE_START_IDX)
17}
18
19pub fn common_log<T: ToString>(data: &T) -> String {
20 format!("{}: {}{}", current_time(), data.to_string(), BR)
21}
22
23pub fn log_handler<T: ToString>(log_data: &T) -> String {
24 common_log(log_data)
25}
26
27pub fn log_debug_handler<T: std::fmt::Debug>(log_data: &T) -> String {
28 let write_data: String = format!("{}: {:?}{}", current_time(), log_data, BR);
29 write_data.clone()
30}
31
32pub fn log_debug_format_handler<T: std::fmt::Debug>(log_data: &T) -> String {
33 let write_data: String = format!("{}: {:#?}{}", current_time(), log_data, BR);
34 write_data.clone()
35}