1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import logging
- from colorama import Fore, Style
- import colorama
- colorama.init()
- class ColoredFormatter(logging.Formatter):
- COLOR_MAP = {
- logging.DEBUG: Fore.BLUE,
- logging.INFO: Fore.GREEN,
- logging.WARNING: Fore.YELLOW,
- logging.ERROR: Fore.RED,
- logging.CRITICAL: Fore.MAGENTA
- }
- def format(self, record):
- msg = record.getMessage()
- original_msg = record.msg
- color = self.COLOR_MAP.get(record.levelno, '')
- msg = color + msg + Style.RESET_ALL
- record.msg = msg
- formatted_message = super().format(record)
- # 恢复原始消息
- record.msg = original_msg
-
- return formatted_message
-
- # Configure logger
- logger = logging.getLogger('repo_sync')
- logger.setLevel(logging.INFO)
- # Create console handler
- console_handler = logging.StreamHandler()
- console_handler.setLevel(logging.INFO)
- # Create file handler
- file_handler = logging.FileHandler('repo_sync.log')
- file_handler.setLevel(logging.INFO)
- # Use the custom colored formatter
- console_formatter = ColoredFormatter('%(asctime)s - %(levelname)s - %(message)s')
- console_handler.setFormatter(console_formatter)
- file_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
- file_handler.setFormatter(file_formatter)
- # Add handler to logger
- logger.addHandler(console_handler)
- logger.addHandler(file_handler)
- # Export logger
- __all__ = ['logger']
|