Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from time import gmtime, strftime
- def get_current_datetime():
- return strftime("%Y-%m-%d %H:%M:%S", gmtime())
- class MyLogger:
- def __init__(self, text_file_name='sample', level = 'DEBUG'):
- self.text_file_name = text_file_name
- self.log_file = open(text_file_name+'.log', 'a')
- self.config_logger(level=level)
- self.format = format
- def config_logger(self, text_file_name='', level='DEBUG'):
- if text_file_name != '' and text_file_name != self.text_file_name:
- self.log_file.close()
- self.text_file_name = text_file_name
- self.log_file = open(text_file_name + '.log', 'a')
- if level.upper() == 'DEBUG': self.level = 'DEBUG'
- elif level.upper() == 'INFO': self.level = 'INFO'
- elif level.upper() == 'WARNING' or level.upper() == 'WARN': self.level = 'WARNING'
- elif level.upper() == 'ERROR': self.level = 'ERROR'
- elif level.upper() == 'CRITICAL' or level.upper() == 'FATAL': self.level = 'CRITICAL'
- elif level == '': pass
- else: raise Exception('Incorrect Level')
- def compare_levels(self, level):
- if level.upper() == 'CRITICAL' or level.upper() == 'FATAL':
- return True
- elif level.upper() == 'ERROR':
- if self.level == 'CRITICAL':
- return False
- return True
- elif level.upper() == 'WARNING' or level.upper() == 'WARN':
- if self.level == 'CRITICAL' or self.level == 'ERROR':
- return False
- return True
- elif level.upper() == 'INFO':
- if self.level == 'INFO' or self.level == 'DEBUG':
- return True
- else:
- return False
- elif level.upper() == 'DEBUG':
- if self.level == 'DEBUG':
- return True
- else:
- return False
- else:
- print(level)
- raise Exception('Incorrect Level')
- def write_log(self, current_script_name='', text='', *formatargs, mode='file', level='DEBUG'):
- if self.compare_levels(level):
- text = text.format(*formatargs)
- if mode == 'file':
- self.log_file.write(get_current_datetime() + ': ' + level + ': ' + current_script_name + ': ' + text + '\n')
- self.log_file.close()
- elif mode == 'console':
- print(get_current_datetime() + ': ' + level + ': ' + current_script_name + ': ' + text + '\n')
- else:
- self.log_file.write(get_current_datetime() + ': ' + level + ': ' + current_script_name + ': ' + text + '\n')
- self.log_file.close()
- print(get_current_datetime() + ': ' + level + ': ' + current_script_name + ': ' + text + '\n')
- log = MyLogger()
- log.write_log('project1', 'pidrila {} {}', 1, 2, mode='file', level='DEBUG')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement