gemma-sage / logger.py
neuralworm's picture
feat: Agentic Oracle, Multi-Message Bubbles, Filtering, and UI Fixes
8ab43a3
Raw
History Blame
877 Bytes
import logging
import sys
# Custom Formatter
class SageFormatter(logging.Formatter):
"""Custom formatter to prefix logs with [MODULE] [LEVEL]."""
def format(self, record):
log_fmt = "[%(name)s] [%(levelname)s] %(message)s"
formatter = logging.Formatter(log_fmt)
return formatter.format(record)
class SageStreamHandler(logging.StreamHandler):
def emit(self, record):
super().emit(record)
self.flush()
def get_sage_logger(name: str):
"""Factory for Sage loggers."""
logger = logging.getLogger(name)
if not logger.handlers:
logger.setLevel(logging.DEBUG)
handler = SageStreamHandler(sys.stdout)
handler.setFormatter(SageFormatter())
logger.addHandler(handler)
logger.propagate = False
return logger
# Global instance for basic app logging
log = get_sage_logger("app")