Source code for erecord_cmn.utils.logger
# -*- coding: UTF-8 -*-
"""erecord_cmn.utils.logger """
import logging
import os
# default values are IN_PRODUCTION False and LOGGING_FILE None
IN_PRODUCTION = False
LOGGING_FILE = None
try:
from erecord_cmn.configs.config import IN_PRODUCTION
except Exception:
pass
try:
from erecord_cmn.configs.config import LOGGING_FILE
except Exception:
pass
if (IN_PRODUCTION is not True) and (IN_PRODUCTION is not False) :
IN_PRODUCTION = False
if LOGGING_FILE is not None :
if not os.path.isdir(os.path.dirname(LOGGING_FILE)):
LOGGING_FILE = None
[docs]def get_logger(name):
"""Creates a logger
Creates a logger with LOGGING_FILE file destination (if not None) and
with console destination (if IN_PRODUCTION False).
"""
# create logger
logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
# create formatter
formatter = logging.Formatter('%(asctime)s , %(name)s , %(levelname)s >> %(message)s')
if not IN_PRODUCTION :
# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# add formatter to ch
ch.setFormatter(formatter)
# add ch to logger
logger.addHandler(ch)
if LOGGING_FILE is not None :
# create file handler
fh = logging.FileHandler(filename=LOGGING_FILE)
if not IN_PRODUCTION :
level = logging.DEBUG
else : # default, IN_PRODUCTION
level = logging.INFO # .WARNING ?
fh.setLevel(level)
# add formatter to fh
fh.setFormatter(formatter)
# add fh to logger
logger.addHandler(fh)
return logger
import traceback
[docs]def report_error() :
""" Reports an error """
LOGGER = get_logger(__name__)
LOGGER.error(u"Error report :\n %s ", traceback.format_exc())