# _ __________________ # | | / / _/ ____/ _/ / # | | / // // / __ / // / # | |/ // // /_/ // // /___ # |___/___/\____/___/_____/ # © Uthmn 2025 under MIT license import logging from logging.handlers import RotatingFileHandler from os import makedirs from os.path import exists # Setup logging once, globally logger = logging.getLogger('vigil') # Prevent duplicate setup if not logger.handlers: logger.setLevel(logging.INFO) # Create log directory if it doesn't exist log_dir = '/var/log/vigil' if not exists(log_dir): makedirs(log_dir, exist_ok=True) # File handler with rotation file_handler = RotatingFileHandler( '/var/log/vigil/vigil.log', maxBytes=10*1024*1024, # 10MB backupCount=3 ) file_handler.setLevel(logging.INFO) file_handler.setFormatter(logging.Formatter( '%(asctime)s [%(levelname)s] %(message)s', datefmt='%Y-%m-%d %H:%M:%S' )) # Console handler (for systemd journal) console_handler = logging.StreamHandler() console_handler.setLevel(logging.INFO) console_handler.setFormatter(logging.Formatter( '%(asctime)s [%(levelname)s] %(message)s', datefmt='%Y-%m-%d %H:%M:%S' )) logger.addHandler(file_handler) logger.addHandler(console_handler)