59 lines
1.4 KiB
Python
59 lines
1.4 KiB
Python
import logging
|
|
import sys
|
|
from pathlib import Path
|
|
from datetime import datetime
|
|
|
|
# Create logs directory
|
|
logs_dir = Path("logs")
|
|
logs_dir.mkdir(exist_ok=True)
|
|
|
|
# Configure logging
|
|
log_file = logs_dir / f"debug_{datetime.now().strftime('%Y%m%d_%H%M%S')}.log"
|
|
|
|
# Create logger
|
|
logger = logging.getLogger('TwitterChecker')
|
|
logger.setLevel(logging.DEBUG)
|
|
|
|
# File handler - detailed logs
|
|
file_handler = logging.FileHandler(log_file, encoding='utf-8')
|
|
file_handler.setLevel(logging.DEBUG)
|
|
file_formatter = logging.Formatter(
|
|
'%(asctime)s | %(levelname)8s | %(filename)s:%(lineno)d | %(message)s',
|
|
datefmt='%Y-%m-%d %H:%M:%S'
|
|
)
|
|
file_handler.setFormatter(file_formatter)
|
|
|
|
# Console handler - important messages only
|
|
console_handler = logging.StreamHandler(sys.stdout)
|
|
console_handler.setLevel(logging.INFO)
|
|
console_formatter = logging.Formatter(
|
|
'\033[1;35m[DEBUG]\033[0m %(message)s'
|
|
)
|
|
console_handler.setFormatter(console_formatter)
|
|
|
|
# Add handlers
|
|
logger.addHandler(file_handler)
|
|
logger.addHandler(console_handler)
|
|
|
|
def debug(msg):
|
|
"""Log debug message"""
|
|
logger.debug(msg)
|
|
|
|
def info(msg):
|
|
"""Log info message"""
|
|
logger.info(msg)
|
|
|
|
def warning(msg):
|
|
"""Log warning message"""
|
|
logger.warning(msg)
|
|
|
|
def error(msg):
|
|
"""Log error message"""
|
|
logger.error(msg)
|
|
|
|
def exception(msg):
|
|
"""Log exception with traceback"""
|
|
logger.exception(msg)
|
|
|
|
# Print initial message
|
|
info(f"Debug logging initialized. Log file: {log_file}")
|