-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathlogger.py
38 lines (30 loc) · 1011 Bytes
/
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
import logging
import sys
FMT = '%(asctime)s %(module)s %(levelname)s %(message)s'
LOGGER_NAME = 'WiktionaryTools'
def logger(debug=False):
"""Singleton logger.
Args:
debug (bool): switch level to logging.DEBUG
"""
log = logging.getLogger(name=LOGGER_NAME)
if not len(log.handlers):
# handlers have not yet been added
setup(log, debug=debug)
return log
def setup(log, debug=True):
"""Configure logger.
Logging to stdout.
"""
console_handler = logging.StreamHandler(stream=sys.stdout)
formatter = logging.Formatter(FMT)
console_handler.setFormatter(formatter)
if debug:
console_handler.setLevel(logging.DEBUG)
log.addHandler(console_handler)
log.setLevel(logging.DEBUG)
else:
console_handler.setLevel(logging.INFO)
log.addHandler(console_handler)
log.setLevel(logging.INFO)
log.debug('Setting up logger for %s', LOGGER_NAME)