Spaces:
Sleeping
Sleeping
File size: 1,542 Bytes
342e0fb | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import os
import logging
from datetime import datetime
class Logger:
_instance = None
@staticmethod
def get_logger(name="AppLogger"):
# Configure root logger once
if not getattr(Logger, "_is_configured", False):
Logger._setup_handlers()
Logger._is_configured = True
return logging.getLogger(name)
@staticmethod
def _setup_handlers():
# Get root logger
logger = logging.getLogger()
logger.setLevel(logging.INFO)
# Clear existing handlers to avoid duplicates
if logger.handlers:
logger.handlers.clear()
# Console Handler
c_handler = logging.StreamHandler()
c_handler.setLevel(logging.INFO)
c_format = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
c_handler.setFormatter(c_format)
logger.addHandler(c_handler)
# File Handler
try:
log_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "logs")
os.makedirs(log_dir, exist_ok=True)
f_handler = logging.FileHandler(os.path.join(log_dir, f"{datetime.now().strftime('%Y-%m-%d')}.log"), encoding='utf-8')
f_handler.setLevel(logging.INFO)
f_format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
f_handler.setFormatter(f_format)
logger.addHandler(f_handler)
except Exception as e:
print(f"Failed to setup file logging: {e}")
|