-
Notifications
You must be signed in to change notification settings - Fork 58
Expand file tree
/
Copy patherrors.py
More file actions
47 lines (42 loc) · 1.61 KB
/
errors.py
File metadata and controls
47 lines (42 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Import dependencies
import os
import logging
from datetime import datetime, date
from inference.base_error import AbstractError
# Abstract error class
class Error(AbstractError):
def __init__(self):
if 'logs' not in os.listdir():
os.mkdir('logs')
self.date = None
super().__init__()
def info(self, message):
self.check_date()
self.logger.info(message)
def warning(self, message):
self.check_date()
self.logger.warning(message)
def error(self, message):
self.check_date()
self.logger.error(message)
def check_date(self):
"""
Divides logging per day. Each logging file corresponds to a specific day.
It also removes all logging files exceeding one year.
:return:
"""
self.date = datetime.now().strftime('%Y-%m-%d')
file_path = 'yolov3_inference_engine_' + self.date + '.log'
if file_path not in os.listdir('logs'):
self.logger.removeHandler(self.handler)
self.handler = logging.FileHandler('logs/' + file_path)
self.handler.setLevel(logging.INFO)
self.handler.setFormatter(logging.Formatter("%(levelname)s;%(asctime)s;%(message)s"))
self.logger.addHandler(self.handler)
oldest_log_file = os.listdir('logs')[0]
oldest_date = oldest_log_file.split("_")[3].split('.')[0]
a = datetime.strptime(datetime.now().strftime('%Y-%m-%d'), '%Y-%m-%d')
b = datetime.strptime(oldest_date, '%Y-%m-%d')
delta = a - b
if delta.days > 365:
os.remove('logs/' + oldest_log_file)