(assumes one line per call to log/debug/info/notice/...,
only counts calls with priority above this logger's level)
* provides shorter method names: dbg, note, warn, err
+ * adds a NullHandler if `streams` and `files` and `handlers` are all `None`
..note:: Creating multiple instances with the same name is not allowed and
will result in an error. Use :py:func:`get_logger` instead of this
handler.setLevel(self._level)
self._log.addHandler(handler)
+ if not self._log.handlers:
+ self._log.addHandler(logging.NullHandler())
+
# remember that this logger is a I2nLogger
_i2n_loggers[name] = self