Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import time
- import logging
- class RollingLogger(object):
- def __init__(self):
- self.NUMBER_OF_LOGS = 10
- self.initialize_logger_settings()
- def initialize_logger_settings(self):
- """Set logger configuration settings"""
- self.initialize_log_directory()
- logging.basicConfig(filename= self.path + self.filename,
- filemode='w',
- level=logging.INFO,
- format='%(asctime)s.%(msecs)03d,%(message)s',
- datefmt='%d-%b-%y,%H:%M:%S')
- logging.info('Successfully loaded logger configuration settings')
- def initialize_log_directory(self):
- """Create directory and log file"""
- self.path = 'logs/'
- if not os.path.exists(self.path):
- os.makedirs(self.path)
- self.filename = 'log0000.log'
- else:
- self.filename = self.get_next_log_file_name()
- def get_next_log_file_name(self):
- """Scans log directory for latest log file and returns a new filename"""
- def extract_digits(filename):
- s = ''
- for char in filename:
- if char.isdigit():
- s += char
- return int(s)
- l = [extract_digits(filename) for filename in os.listdir(self.path)]
- # Directory is empty
- if not l:
- return 'log0000.log'
- # Directory has files so find latest
- else:
- latest_file_number = max(l)
- return 'log' + '{0:04d}'.format(latest_file_number + 1) + '.log'
- logger = RollingLogger()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement