-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathlogger.py
98 lines (77 loc) · 2.55 KB
/
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
94
95
96
97
98
"""
logger module
This module provides several levels of logging
throughout the runs of Syntheco
"""
import logging
import os
def setup_logger(log_file='syntheco_log.txt',
data_log_file='synthco_data.txt',
log_level='INFO'):
"""
setup_logger
initiallizes the logger
Arguments:
log_file - Filename for the general logging file
data_log_file - Filename for the data logging file
log_level - Default logging level for output
can be ["INFO","DEBUG","WARN","ERROR","CRIT"]
Returns
Nothing
"""
logger = logging.getLogger("syntheco_logger")
logger.setLevel(log_level)
file_handler = logging.FileHandler(log_file)
formatter = logging.Formatter('%(asctime)s: %(levelname)s: %(name)s : %(message)s')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
data_logger = logging.getLogger("syntheco_data_logger")
data_logger.setLevel("INFO")
data_file_handler = logging.FileHandler(data_log_file)
data_formatter = logging.Formatter('%(asctime)s: %(message)s')
data_file_handler.setFormatter(data_formatter)
data_logger.addHandler(data_file_handler)
def log(level="INFO", msg=None):
"""
log
Helper function that handles logging to the general
syntheco output file
Arguments:
level - The logging level you would like to use
can be ["INFO","DEBUG","WARN","ERROR","CRIT"]
msg - The message to be logged.
Returns:
Nothing, output is logged to files
"""
logger = logging.getLogger("syntheco_logger")
if msg is None:
logger.error("Logging made without message")
return
if level == "INFO":
logger.info(msg)
elif level == "DEBUG":
logger.debug(msg)
elif level == "WARN":
logger.warning(msg)
elif level == "ERROR":
logger.error(msg)
elif level == "CRIT":
logger.critical(msg)
else:
logger.error("Trying to log {} with an unknown level".format(msg))
return
def data_log(msg=None):
"""
data_log
Helper function that handles logging to the data
syntheco output file
Arguments:
msg - The message to be logged.
Returns:
Nothing, output is logged to files
"""
logger = logging.getLogger('syntheco_data_logger')
if msg is None:
logger.error("Logging made without message")
return
logger.info(msg)