mirror of
https://github.com/MoonlitJolteon/frc-stat-predictor.git
synced 2025-11-01 13:40:21 +00:00
56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
import logging
|
|
import os
|
|
from datetime import datetime
|
|
|
|
|
|
class Logger:
|
|
"""Handles logging for the application"""
|
|
|
|
def __init__(self, log_dir="logs", log_level=logging.INFO):
|
|
self.log_dir = log_dir
|
|
|
|
if not os.path.exists(log_dir):
|
|
os.makedirs(log_dir)
|
|
|
|
log_file = os.path.join(
|
|
log_dir, f"frcsp_{datetime.now().strftime('%Y%m%d_%H%M%S')}.log"
|
|
)
|
|
|
|
self.logger = logging.getLogger("frcsp")
|
|
self.logger.setLevel(log_level)
|
|
|
|
# File handler
|
|
file_handler = logging.FileHandler(log_file)
|
|
file_handler.setLevel(log_level)
|
|
|
|
# Console handler
|
|
console_handler = logging.StreamHandler()
|
|
console_handler.setLevel(log_level)
|
|
|
|
# Formatter
|
|
formatter = logging.Formatter(
|
|
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
|
)
|
|
file_handler.setFormatter(formatter)
|
|
console_handler.setFormatter(formatter)
|
|
|
|
# Add handlers
|
|
self.logger.addHandler(file_handler)
|
|
self.logger.addHandler(console_handler)
|
|
|
|
def info(self, message):
|
|
"""Log an info message"""
|
|
self.logger.info(message)
|
|
|
|
def warning(self, message):
|
|
"""Log a warning message"""
|
|
self.logger.warning(message)
|
|
|
|
def error(self, message):
|
|
"""Log an error message"""
|
|
self.logger.error(message)
|
|
|
|
def debug(self, message):
|
|
"""Log a debug message"""
|
|
self.logger.debug(message)
|