45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
"""
|
|
Logger setup utility
|
|
"""
|
|
import logging
|
|
import sys
|
|
from flask import Flask
|
|
|
|
def setup_logger(app: Flask):
|
|
"""
|
|
Setup application logger
|
|
|
|
Args:
|
|
app: Flask application instance
|
|
"""
|
|
config = app.config
|
|
|
|
# Get log level
|
|
log_level = getattr(logging, config.get('log_level', 'INFO').upper(), logging.INFO)
|
|
|
|
# Configure logger
|
|
logger = logging.getLogger('videoSummary')
|
|
logger.setLevel(log_level)
|
|
|
|
# Create formatter
|
|
if config.get('log_format') == 'json':
|
|
formatter = logging.Formatter(
|
|
'{"time": "%(asctime)s", "level": "%(levelname)s", "message": "%(message)s", "module": "%(name)s"}'
|
|
)
|
|
else:
|
|
formatter = logging.Formatter(
|
|
'%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
|
)
|
|
|
|
# Create handler
|
|
if config.get('log_output') == 'stdout' or not config.get('log_output'):
|
|
handler = logging.StreamHandler(sys.stdout)
|
|
else:
|
|
handler = logging.FileHandler(config.get('log_output'))
|
|
|
|
handler.setFormatter(formatter)
|
|
logger.addHandler(handler)
|
|
|
|
app.logger = logger
|
|
|