-
Notifications
You must be signed in to change notification settings - Fork 0
/
info_logger.py
93 lines (76 loc) · 3.38 KB
/
info_logger.py
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
''' This module contains all functions and setup required for the programs logging '''
# External Libraries
import os
import logging
import datetime
import csv
# My Modules
import variables
import handle_config
my_path = os.path.abspath(os.path.dirname(__file__))
logging.basicConfig(filename='logging_' + datetime.datetime.now().strftime('%d-%m-%Y') + '.log', level=logging.DEBUG)
def init():
''' This function creates a new log with current date time '''
logging.info('------')
logging.info(' ')
logging.info('Start: %s', str(datetime.datetime.now()))
def decode_fourcc(v):
v = int(v)
return "".join([chr((v >> 8 * i) & 0xFF) for i in range(4)])
def camera_settings(capture):
''' This function writes the camera settings to the log '''
logging.debug(' ')
logging.debug('Camera Settings: ')
for camera_setting in range(len(variables.CAMERA_VARIABLES)):
cam_var = str(variables.CAMERA_VARIABLES[camera_setting])
cam_setting = str(capture.get(camera_setting))
decode_cam = ''
if variables.CAMERA_VARIABLES[camera_setting] == 'CAP_PROP_FOURCC':
decode_cam = ' (' + str(decode_fourcc(capture.get(camera_setting))) + ')'
logging.debug('\t' + cam_var + ' - ' + cam_setting + decode_cam)
def settings_access(keycard_value, username):
''' This function writes the settings_access information to the log '''
logging.info(' ')
logging.info('Settings Accessed:')
logging.info(' Keycard Value: %s', keycard_value)
logging.info(' Username: %s', username)
logging.info(' Time: %s', datetime.datetime.now())
def settings_access_error(keycard_value):
''' This function writes failed settings access attempt information to the log '''
logging.error(' ')
logging.error('Settings Access Fail:')
logging.error(' Keycard Value: %s', keycard_value)
logging.error(' Time: %s', datetime.datetime.now())
def result(lane, width, height):
''' This adds a row result to CSV file '''
row = [str(datetime.datetime.now().strftime('%Y:%m:%d:%H:%M:%S'))]
row.append(str(lane + 1))
row.append(str(int(width * handle_config.WIDTH_RATIOS[lane])))
row.append(str(int(height * handle_config.HEIGHT_RATIOS[lane])))
row.append(str(int(width * height)))
with open(R'%s' % handle_config.CURRENT_RESULTS, 'ab') as csvFile:
writer = csv.writer(csvFile)
writer.writerow(row)
csvFile.close()
def shutdown():
''' This function writes the shutdown information to the log '''
logging.info(' ')
logging.info('End: %s', str(datetime.datetime.now()))
logging.info(' ')
def stats_error(lane, current_rect, rects_arr, exception):
''' This function writes any errors with the stats to the log '''
logging.error(' ')
logging.error('Stats Error:')
logging.error(' Time: %s', datetime.datetime.now())
logging.error(' Lane: %s', str(lane))
logging.error(' current_rect: %s', str(current_rect))
logging.error(' rects_arr: %s', str(rects_arr))
logging.error(' Exception: %s', str(exception))
def lane_error(lane, contours, exception):
''' This function writes any errors with the lane to the log '''
logging.error(' ')
logging.error('Lane Error:')
logging.error(' Time: %s', datetime.datetime.now())
logging.error(' Lane: %s', str(lane))
logging.error(' Contours: %s', str(contours))
logging.error(' Exception: %s', str(exception))