Source code for metalparser.common.logger
import logging
[docs]class MetalParserLogger:
"""
Instantiate a logging.Logger object.
Parameters
----------
debug_mode : bool
Boolean defining if the logging level (DEBUG if True, ERROR if False).
Attributes
----------
logger : Logger
The logging.Logger object initialized.
Methods
-------
get_logger(self)
Returns the logger attribute.
"""
def __init__(self, debug_mode):
self.logger = None
if debug_mode is True:
self.__set_debug_mode_logger()
else:
self.__set_error_mode_logger()
[docs] def get_logger(self):
"""
Returns the logger attribute.
Returns:
[Logger] -- The logging.Logger object initialized.
"""
return self.logger
def __set_debug_mode_logger(self):
"""
Set logger level to DEBUG and only display error messages on a log file and on console.
It creates the log file in the folder from where the script is called.
"""
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s %(levelname)-- 8s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
filename='metalparser.log',
filemode='w'
)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
self.logger = logging.getLogger('metalparser')
self.logger.addHandler(console_handler)
def __set_error_mode_logger(self):
"""Set logger level to ERROR and only display error messages on console."""
ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)
self.logger = logging.getLogger('metalparser_console_only')
self.logger.addHandler(ch)