35 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from logging.handlers import RotatingFileHandler
 | 
						|
from singleton import Singleton
 | 
						|
 | 
						|
import logging
 | 
						|
import constants
 | 
						|
 | 
						|
 | 
						|
class Logger(metaclass=Singleton):
 | 
						|
    def __init__(self):
 | 
						|
        self.logger = logging.getLogger(constants.LOGGER_NAME)
 | 
						|
        self.logger.setLevel(logging.DEBUG)
 | 
						|
 | 
						|
        file_handler = RotatingFileHandler(constants.LOG_FILE,
 | 
						|
                                           maxBytes=constants.MAX_LOG_FILE_SIZE_BYTES,
 | 
						|
                                           encoding='UTF-8',
 | 
						|
                                           backupCount=1)
 | 
						|
        file_handler.setLevel(logging.DEBUG)
 | 
						|
 | 
						|
        console_handler = logging.StreamHandler()
 | 
						|
        console_handler.setLevel(logging.INFO)
 | 
						|
 | 
						|
        formatter = logging.Formatter(fmt='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
 | 
						|
                                      datefmt='%m-%d %H:%M')
 | 
						|
        file_handler.setFormatter(formatter)
 | 
						|
        console_handler.setFormatter(formatter)
 | 
						|
 | 
						|
        self.logger.addHandler(file_handler)
 | 
						|
        self.logger.addHandler(console_handler)
 | 
						|
 | 
						|
    def get_logger(self):
 | 
						|
        return self.logger
 | 
						|
 | 
						|
 | 
						|
logger_instance = Logger().get_logger()
 |