def getTableLogger(table_name): LOG_CONFIG['handlers']['{}_file'.format(table_name)] = { 'level': 'DEBUG', 'class': 'logging.handlers.TimedRotatingFileHandler', 'formatter': 'standard', 'filename': os.path.expanduser('./logs/{}-table.log'.format(table_name)), 'when': 'midnight', 'backupCount': 5 } if config_handler.get_global_option('dry_run'): LOG_CONFIG['handlers']['{}_file'.format( table_name)]['formatter'] = 'dry-run' if config_handler.get_logging_option('log_level'): level = config_handler.get_logging_option('log_level').upper() else: level = 'DEBUG' LOG_CONFIG['loggers']['{}_table'.format(table_name)] = { 'handlers': ['{}_file'.format(table_name)], 'level': level, 'propagate': False } try: dictconfig.dictConfig(LOG_CONFIG) except ValueError as error: print('Error configuring logger: {0}'.format(error)) sys.exit(1) except: raise return logging.getLogger('{}_table'.format(table_name))
def __init__(self, name='dynamic-dynamodb', level='info', log_file=None, logstash_logger=False, dry_run=False): """ Instanciate the logger :type name: str :param name: Logger name :type level: str :param level: Log level [debug|info|warning|error] :type log_file: str :type log_file: bool :param log_file: Path to log file (if any) :type logstash_logger: str :type logstash_logger: bool :type dry_run: bool :param dry_run: Add dry-run to the output """ # Set up the logger self.logger = logging.getLogger(name) if level.lower() == 'debug': self.logger.setLevel(logging.DEBUG) elif level.lower() == 'info': self.logger.setLevel(logging.INFO) elif level.lower() == 'warning': self.logger.setLevel(logging.WARNING) elif level.lower() == 'error': self.logger.setLevel(logging.ERROR) else: self.logger.setLevel(logging.INFO) # Formatting if dry_run: formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - dryrun - %(message)s') else: formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') # Console handler console_handler = logging.StreamHandler() console_handler.setFormatter(formatter) self.logger.addHandler(console_handler) # File handler if log_file: file_handler = logging.FileHandler(os.path.expanduser(log_file)) file_handler.setFormatter(formatter) self.logger.addHandler(file_handler) if logstash_logger: self.logger.addHandler(logstash.LogstashHandler( config_handler.get_logging_option('logstash_host'), config_handler.get_logging_option('logstash_port'), 'dynamic-dynamodb'))
def __get_logger(): """ Returns the logger """ # Instanciate a new logger if config_handler.get_logging_option('log_file'): logger = LogHandler( level=config_handler.get_logging_option('log_level'), log_file=config_handler.get_logging_option('log_file'), dry_run=config_handler.get_global_option('dry_run')) else: logger = LogHandler( level=config_handler.get_logging_option('log_level'), dry_run=config_handler.get_global_option('dry_run')) return logger
}, 'loggers': { '': { 'handlers': ['console'], 'level': 'WARNING', 'propagate': True }, 'dynamic-dynamodb': { 'handlers': ['console'], 'level': 'DEBUG', 'propagate': False } } } if config_handler.get_logging_option('log_config_file'): # Read configuration from an external Python logging file logging.config.fileConfig(os.path.expanduser( config_handler.get_logging_option('log_config_file'))) else: # File handler if config_handler.get_logging_option('log_file'): log_file = os.path.expanduser( config_handler.get_logging_option('log_file')) LOG_CONFIG['handlers']['file'] = { 'level': 'DEBUG', 'class': 'logging.handlers.TimedRotatingFileHandler', 'formatter': 'standard', 'filename': log_file, 'when': 'midnight', 'backupCount': 5