tts-api / app /logging_config.py
gavanduffy
Port pocket-tts to supertonic3: 44100 Hz, 10 voices, 31 languages
d715e26
Raw
History Blame Contribute Delete
1.83 kB
"""
Logging configuration with file rotation support.
"""
import logging
import sys
from logging.handlers import RotatingFileHandler
from pathlib import Path
from app.config import Config
def setup_logging(log_level: str = None) -> logging.Logger:
level = getattr(logging, (log_level or Config.LOG_LEVEL).upper(), logging.INFO)
logger = logging.getLogger('SuperTonic3')
logger.setLevel(level)
if logger.handlers:
return logger
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setLevel(level)
console_format = logging.Formatter(
'%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S'
)
console_handler.setFormatter(console_format)
logger.addHandler(console_handler)
try:
log_dir = Path(Config.LOG_DIR)
log_dir.mkdir(parents=True, exist_ok=True)
log_path = log_dir / Config.LOG_FILE
file_handler = RotatingFileHandler(
log_path,
maxBytes=Config.LOG_MAX_BYTES,
backupCount=Config.LOG_BACKUP_COUNT,
encoding='utf-8',
)
file_handler.setLevel(level)
file_format = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - [%(filename)s:%(lineno)d] - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
)
file_handler.setFormatter(file_format)
logger.addHandler(file_handler)
except Exception as e:
logger.warning(f'Could not set up file logging: {e}')
logging.getLogger('werkzeug').setLevel(logging.WARNING)
logging.getLogger('urllib3').setLevel(logging.WARNING)
return logger
def get_logger(name: str = None) -> logging.Logger:
base_logger = logging.getLogger('SuperTonic3')
if name:
return base_logger.getChild(name)
return base_logger