Logging#

Introduction#

Logging is implemented using standard Python logging module. skyllh package adds support to multiprocessing logging.

Setup#

Analyzer has to set up the main logger and at least one handler for it. Necessary imports:

[ ]:
import logging

# Logging setup utilities.
from skyllh.core.debugging import (
    setup_logger,
    setup_console_handler,
    setup_file_handler
)

Logger is setup with the following function call. Analyzer can define a desired logging level which optimally is infimum of handling levels.

[ ]:
setup_logger('skyllh', logging.DEBUG)

Log format is defined by a string containing LogRecord attributes.

[ ]:
log_format = '%(asctime)s %(processName)s %(name)s %(levelname)s: '\
             '%(message)s'

Console handler is used to print logs to the console.

[ ]:
setup_console_handler('skyllh', logging.INFO, log_format)

File handler is used to print logs to the specified file. By default it is created in the current working directory.

[ ]:
setup_file_handler('skyllh', logging.DEBUG, log_format, 'debug.log')

Generating logs#

To generate logs inside skyllh package one has to

[ ]:
import logging

and get the logger for each class/function using:

[ ]:
logger = logging.getLogger(__name__)

To log an event we use the logging function of a desired level, e.g.:

[ ]:
logger.warning("This is a warning.")

The list of logging levels can be found here.