In [1]:
import logging

In [2]:
# create logger
logger = logging.getLogger('pyaf')
lHandler = logging.StreamHandler()
lHandler.setLevel(logging.DEBUG)
logger.addHandler(lHandler)

In [3]:
logger


Out[3]:
<logging.Logger at 0x7f0f16bb5550>

In [4]:
logger.__dict__


Out[4]:
{'disabled': False,
 'filters': [],
 'handlers': [<logging.StreamHandler at 0x7f0f16bb5588>],
 'level': 0,
 'manager': <logging.Manager at 0x7f0f2493a550>,
 'name': 'pyaf',
 'parent': <logging.RootLogger at 0x7f0f2493a4e0>,
 'propagate': True}

In [5]:
# 'application' code
logger.debug('debug message')
logger.info('info message')
logger.warning('warn message')
logger.error('error message')
logger.critical('critical message')


warn message
error message
critical message

In [6]:
logger.handlers[0].__dict__


Out[6]:
{'_name': None,
 'filters': [],
 'formatter': None,
 'level': 10,
 'lock': <unlocked _thread.RLock object owner=0 count=0 at 0x7f0f16b6dbd0>,
 'stream': <ipykernel.iostream.OutStream at 0x7f0f1ecf3438>}

In [ ]:
# insert some logging
import logging
import logging.config

# remove the notebook root logger.
logger = logging.getLogger()
logger.handlers = [logging.NullHandler()]
#logger.addHandler()

# set default level
# logging.basicConfig(level=logging.NOTSET)
logging.getLogger('pyaf').handlers=[];
logging.getLogger('pyaf.std').handlers=[]; # logging.NullHandler()];


lHandler2 = logging.StreamHandler()
lHandler2.setLevel(logging.INFO)
logging.getLogger('pyaf.hierarchical').handlers = []
logging.getLogger('pyaf.hierarchical').addHandler(lHandler2)

In [ ]:
logging.getLogger('pyaf.std').info("OOOO")
logging.getLogger('pyaf.hierarchical').info("FGG")

In [ ]: