Added NullHandlers to all loggers to prevent "No handler" messages by jamescnowell · Pull Request #300 · gitpython-developers/GitPython

When the code is run without setting up loggers, the loggers have no
handlers for the emitted messages. The logging module displays:
`No handlers could be found for logger "git.cmd"` on the
console. By adding a NullHandler (a no-op) the message disappears,
and doesn't affect logging when other handlers are configured.

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

Jan 23, 2024
The NullHandler class in git.util was added when merging gitpython-developers#300, to
allow a noop handler to be used on Python 2.6, since the standard
library logging.NullHandler class was added in Python 2.7.

When introduced in d1a9a23, the git.util.NullHandler class was also
patched into the logging module, but that has no longer been done
since 2fced2e (gitpython-developers#979), nor does GitPython make other use of it.

This also changes the parameter type annotation on the emit method
from `object` to `logging.LogRecord`, which is the expeced type.

EliahKagan added a commit to EliahKagan/GitPython that referenced this pull request

Jan 26, 2024
This stops adding `NullHandler` instances to GitPython's loggers.
As noted in gitpython-developers#1806, when they were added in gitpython-developers#300 this prevented
errors when GitPython logged messages and logging was not enabled,
but since Python 3.2 there is a logger of last resort providing a
nicer default behavior of showing the messages. (They are still
shown with better formatting if logging is configured, even if
just done with logging.basicConfig(), so applications should still
typically configure logging.)