hyperlane_log/log/
utils.rs

1use 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}