-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMyLogger.py
executable file
·36 lines (30 loc) · 1.38 KB
/
MyLogger.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
#!/usr/bin/env python
from __future__ import print_function
from __future__ import division
import logging
from datetime import date
def myLogger(loggerName, fileName=None):
"""
This returns a custom python logger.
This initializes the logger characteristics. Passing in a file name
will send logging output, not only to console, but to a file.
"""
LOGGER = logging.getLogger(loggerName) # get logger named for this module
LOGGER.setLevel(logging.DEBUG) # set logger level to debug
# create formatter
LOG_DATEFMT = '%Y-%m-%d %H:%M:%S'
LOG_FORMAT = ('\n[%(levelname)s/%(name)s:%(lineno)d] %(asctime)s ' +
'(%(processName)s/%(threadName)s)\n> %(message)s')
FORMATTER = logging.Formatter(LOG_FORMAT, datefmt=LOG_DATEFMT)
CH = logging.StreamHandler() # create console handler
CH.setLevel(logging.DEBUG) # set handler level to debug
CH.setFormatter(FORMATTER) # add formatter to ch
LOGGER.addHandler(CH) # add console handler to logger
if fileName is not None:
# Get gregorian date, local
d = date.today()
FH = logging.FileHandler(fileName + "_" + d.strftime("%Y%m%d") + ".log") # create file handler
FH.setLevel(logging.DEBUG) # set handler level to debug
FH.setFormatter(FORMATTER) # add formatter to fh
LOGGER.addHandler(FH) # add file handler to logger
return LOGGER