diff --git a/src/shared_libs/loggable b/src/shared_libs/loggable new file mode 100644 index 0000000..10e9e59 --- /dev/null +++ b/src/shared_libs/loggable @@ -0,0 +1,21 @@ +#!/usr/bin/env python3.6 +# -*- coding: utf-8 -*- +""" +Neko404NotFound 2018, MIT + +A mixin class that injects a suitably named logger into class scope +at runtime. + +Chosen to make this a slotted class, which means (as far as I can remember) +that it is not suitable to be made into an abc.ABC class. Slots will +enable derived slotted classes to be a bit more efficient at runtime and +boast faster lookups. +""" +import logging + + +class Loggable: + __slots__ = ('logger',) + + def __init_subclass__(cls, **_): + cls.logger = logging.getLogger(cls.__qualname__)