tlogger 0.1.2

A simple logging library with a neat style and customizablity.
Documentation
use std::{fs::{self, File, OpenOptions}, io::Write, path::PathBuf};

pub struct Logger {
    base_path: PathBuf,
}

impl Logger {
    pub fn new<P: Into<PathBuf>>(base_path: P) -> std::io::Result<Self> {
        let base_path = base_path.into();
        fs::create_dir_all(&base_path)?;
        Ok(Logger { base_path })
    }

    fn get_log_file(&self) -> std::io::Result<File> {
        let today = chrono::Local::now().format("%Y-%m-%d").to_string();
        let file_name = format!("{}.log", today);
        let file_path = self.base_path.join(file_name);

        OpenOptions::new()
            .create(true)
            .append(true)
            .open(file_path)
    }

    pub fn log(&self, message: &str) -> std::io::Result<()> {
        let mut file = self.get_log_file()?;
        file.write_all(message.as_bytes())?;
        file.write_all(b"\n")?;
        Ok(())
    }
}