use ntime::Duration;
use std::env;
use std::process;
use std::sync::LazyLock;
pub static PROCESS_ID: LazyLock<u32> = LazyLock::new(|| process::id());
pub static PROCESS_NAME: LazyLock<String> = LazyLock::new(|| {
let current_exe = env::current_exe();
match ¤t_exe {
Ok(ce) => match ce.file_name() {
Some(n) => match n.to_str() {
Some(s) => return String::from(s),
None => String::from("process_invalid_name"),
},
_ => String::from("process_no_name"),
},
_ => String::from("process"),
}
});
pub static HOSTNAME: LazyLock<String> = LazyLock::new(|| String::from("localhost"));
pub static UTF8_BOM: [u8; 3] = [0xef, 0xbb, 0xbf];
pub const ATTRIBUTE_KEY_ERROR: &str = "error";
pub const ATTRIBUTE_KEY_LEVEL: &str = "level";
pub const ATTRIBUTE_KEY_MESSAGE: &str = "message";
pub const ATTRIBUTE_KEY_TIME: &str = "time";
pub const ATTRIBUTE_KEY_TIMESTAMP: &str = "timestamp";
pub const ATTRIBUTE_KEY_LOGGER_ID: &str = "logger_id";
pub const MAX_LOGGER_DEPTH: u16 = 1024;
pub const DEFAULT_LOG_DELIMITER_BINARY: &[u8] = "".as_bytes();
#[cfg(not(target_os = "windows"))]
pub const DEFAULT_LOG_DELIMITER_STRING: &[u8] = "\n".as_bytes();
#[cfg(target_os = "windows")]
pub const DEFAULT_LOG_DELIMITER_STRING: &[u8] = "\r\n".as_bytes();
pub const THREAD_FINALIZE_TIMEOUT: Duration = Duration::from_secs(5);
pub const THREAD_FINALIZE_SPINLOCK_WAIT: Duration = Duration::from_millis(50);
pub const NETWORK_TIMEOUT: Duration = Duration::from_secs(30);
pub const DEFUALT_JOURNALD_SOCKET: &str = "/run/systemd/journal/socket";
#[cfg(unix)]
pub const DEFAULT_LOCAL_SYSLOG_SOCKETS: [&str; 3] = ["/dev/log", "/var/run/log", "/var/run/syslog"];