Source code for stixcore.util.logging
"""
The logging module provides a common logging using pythons logging module. A root logger is
configured for the stixcore package on import and all subsequent loggers should be created as
children of the logger.
Examples
--------
.. code-block:: python
#stixcore.mymodule (stixcore/mymodule.py)
import logging
from stixcore.util.logging import get_logger
logger = get_logger(__name__)
logger.debug('you will not see me')
logger = get_logger(__name__, level=logging.DEBUG)
logger.debug('you will see me')
2020-11-25T12:21:27Z DEBUG: you will see me - stixcore.mymodule
"""
import logging
STX_LOGGER_FORMAT = "%(asctime)s %(levelname)s %(name)s %(lineno)s: %(message)s"
STX_LOGGER_DATE_FORMAT = "%Y-%m-%dT%H:%M:%SZ"
[docs]
def get_logger(name, level=logging.INFO):
"""
Return a configured logger instance.
Parameters
----------
name : `str`
Name of the logger
level : `int` or level, optional
Level of the logger e.g `logging.DEBUG`
Returns
-------
`logging.Logger`
Configured logger
"""
logger = logging.getLogger(name)
logger.setLevel(level)
handler = logging.StreamHandler()
handler.setLevel(level)
formatter = logging.Formatter(STX_LOGGER_FORMAT, datefmt=STX_LOGGER_DATE_FORMAT)
handler.setFormatter(formatter)
logger.addHandler(handler)
return logger