ElasticLogger package API

Submodules

elasticlogger.hooks.elasticsearch.elasticsearch module

elasticlogger.hooks.hook_context module

Hook context that keeps data to be modified.

class elasticlogger.hooks.hook_context.HookContext(level: int, logger_level: int, logger_name: AnyStr, message: AnyStr, extra_data: Dict[AnyStr, Any])

Bases: object

Context information for hook execution.

Parameters
  • level (int) – Current log record level

  • logger_level (int) – Global logger level

  • logger_name (str) – Global logger name

  • message (str) – Current log record message

  • extra_data (dict) – Current log record extra data

property level: int

Getter for level property.

property logger_level: int

Global logger level.

property logger_name: AnyStr

Global logger name.

elasticlogger.hooks.hooks module

Definition of a hook.

Logger hooks are functions or callable classes that receive all the logging information that should be logged by the instance in any of the calls of the debug, info, warning, error, fatal or critical methods.

Example:

def hook_function(context: HookContext) -> NoReturn:
if ‘foo’ in context.extra_data:

del context.extra_data[‘foo’]

logger.add_hook(hook_function)

Example2:

class HookClass:
def __call__(self, context: HookContext) -> NoReturn:
if ‘bar’ in context.extra_data:

context.extra_data[‘bar’] = context.extra_data[‘foo’]

logger.add_hook(HookClass())

elasticlogger.ports.elasticsearch.elasticsearch module

elasticlogger.types.linked_list module

elasticlogger.types.context module

Logger context data store

class elasticlogger.types.context.Context

Bases: contextlib.ContextDecorator

Context manager for global and persistent logger data.

clear()

Delete all previous context data

property data

Return stored data fo the context.

field(name: AnyStr, value: Any)

Add single field to context data. Context data will be logged in all logs and never is auto cleaned

Parameters
  • name – New key name for the field

  • value – Value of the field (if it’s an object needs to be json serializable)

Return Context

Self instance

Raises

ContextKeyError – When the given context key is not a str

fields(fields: dict)

Add fields to context data. Context data will be logged in all logs and never is auto cleaned

Parameters

fields – (dict) Extra fields to add in the json log

Return Context

Self instance

elasticlogger.types.json_encoder module

elasticlogger.utils.utils module

Utils that can be used across all files.

elasticlogger.utils.utils.get_error_info(error: Any) Dict[AnyStr, Any]

Extract error information from a given error object.

Parameters

error – Error information

Return Dict[AnyStr, Any]

Extracted error information

elasticlogger.utils.utils.get_level_name(level: int)

Return level name from logging package levels

Parameters

level – Logging level

Raises

InvalidLogLevel – For an invalid level value

Return int

String name

elasticlogger.utils.utils.get_logging_method(level: int, logger: logging.Logger) Callable

Return logging method from an instance of a logger

Parameters
  • level – Logging level

  • logger – Current instance of a Logger object

Raises

InvalidLogLevel – For an invalid level value

Return int

String name

elasticlogger.base_logger module

elasticlogger.errors module

Custom module errors

exception elasticlogger.errors.ContextKeyError

Bases: Exception

Error for invalid type of a Context key

exception elasticlogger.errors.InvalidLogLevel

Bases: Exception

Error raised when an invalid log level is detected

elasticlogger.logger module

Module contents