-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlogger.py
More file actions
executable file
·48 lines (38 loc) · 1.49 KB
/
logger.py
File metadata and controls
executable file
·48 lines (38 loc) · 1.49 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
48
import logging
import sys
def setLogger(logger, fname=None, logLevel='info'):
""" Function to set up the handle error logging.
logger (obj) = a logger object
fname = the name of the log file, if no logfile is given then logging
information will be pritned to stdout.
logLevel = level of information to print out, options are {info, debug} [Default: info]
"""
# Determine log level
if logLevel == 'info':
_level = logging.INFO
elif logLevel == 'debug':
_level = logging.DEBUG
# Set the level in logger
logger.setLevel(_level)
# Set the log format
logfmt = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
# Output to file or STDOUT
if fname:
fh = logging.FileHandler(filename=fname,mode='w')
fh.setLevel(_level)
fh.setFormatter(logfmt)
logger.addHandler(fh)
else:
# Since no file was provide output to STDOUT and STDERR
loghandler = logging.StreamHandler(stream=sys.stdout)
errhandler = logging.StreamHandler(stream=sys.stderr)
# Set logging level for the different output handlers.
# ERRORs to STDERR, and everything else to STDOUT
loghandler.setLevel(_level)
errhandler.setLevel(logging.ERROR)
# Format the log handlers
loghandler.setFormatter(logfmt)
errhandler.setFormatter(logfmt)
# Add handler to the main logger
logger.addHandler(loghandler)
logger.addHandler(errhandler)