Files
secretary/common/helper/logging.py
2020-11-12 18:56:12 -03:00

45 lines
1.6 KiB
Python

import os
import datetime
class Logging:
"""
Clase que registra los eventos del flujo del programa en archivos
"""
def __init__(self, timezone, folder=None, name=''):
self.tz = timezone
self.folder = folder
self.name = name
self.filename = self.get_filename()
self.log('------')
def get_filename(self):
files = [f for f in os.listdir(self.folder) if os.path.isfile(os.path.join(self.folder, f)) and 'logging' in f]
if len(files) > 0:
filename = files[-1]
if os.path.getsize(os.path.join(self.folder, filename)) < 1024 * 1024:
return filename
today = datetime.datetime.now(tz=self.tz)
filename = '-'.join([self.name, 'logging-{0}.log'.format(today.strftime('%Y-%m-%d'))]).strip('-')
base_name = filename
n = 1
while os.path.isfile(os.path.join(self.folder, filename)):
filename = '-'.join([
base_name,
str(n)
])
n += 1
return filename
def log(self, message, caller=None):
now = datetime.datetime.now(tz=self.tz)
if caller is None:
msg = '[{0}] {1}.'.format(now.strftime('%Y-%m-%d %H:%M:%S'), message.strip('.'))
else:
msg = '[{0}] ({2}) {1}.'.format(now.strftime('%Y-%m-%d %H:%M:%S'), message.strip('.'), caller)
print(msg)
if self.folder is not None:
filename = os.path.join(self.folder, self.filename)
with open(filename, 'a') as f:
f.write(msg + "\n")