rakhas_logger 0.1.0

Async logging library with batch processing and graceful shutdown
Documentation
use chrono_tz::Tz;
use std::path::PathBuf;
use std::time::Duration;

pub const BATCH_SIZE: usize = 1024;
pub const DELAY_TO_FORCE_DROP: Duration = Duration::from_secs(5);
pub const TIME_BEFORE_COUNTS_DEAD: Duration = Duration::from_secs(10);
pub const MOSCOW_ZONE: Tz = chrono_tz::Europe::Moscow;

#[derive(Debug, Clone)]
pub struct LoggerConfig {
    pub log_path: PathBuf,
    pub timezone: Tz,
    pub batch_size: usize,
    pub flush_interval: Duration,
    pub timeout: Duration,
}

impl Default for LoggerConfig {
    fn default() -> Self {
        Self {
            log_path: PathBuf::from("app.log"),
            timezone: MOSCOW_ZONE,
            batch_size: BATCH_SIZE,
            flush_interval: DELAY_TO_FORCE_DROP,
            timeout: TIME_BEFORE_COUNTS_DEAD,
        }
    }
}