From aa0ccead680443b07fd675f8b906758907bdb415 Mon Sep 17 00:00:00 2001 From: James Nowell Date: Thu, 25 Jun 2015 09:24:40 -0400 Subject: Added NullHandlers to all loggers to preven "No handler" messages 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. --- git/cmd.py | 1 + git/config.py | 1 + git/objects/commit.py | 1 + git/objects/submodule/base.py | 1 + git/objects/submodule/root.py | 1 + 5 files changed, 5 insertions(+) diff --git a/git/cmd.py b/git/cmd.py index 87e482d8..c0eeec0a 100644 --- a/git/cmd.py +++ b/git/cmd.py @@ -44,6 +44,7 @@ execute_kwargs = ('istream', 'with_keep_cwd', 'with_extended_output', 'output_stream') log = logging.getLogger('git.cmd') +log.addHandler(logging.NullHandler()) __all__ = ('Git', ) diff --git a/git/config.py b/git/config.py index a6a25c7b..2d9adbdd 100644 --- a/git/config.py +++ b/git/config.py @@ -32,6 +32,7 @@ __all__ = ('GitConfigParser', 'SectionConstraint') log = logging.getLogger('git.config') +log.addHandler(logging.NullHandler()) class MetaParserBuilder(abc.ABCMeta): diff --git a/git/objects/commit.py b/git/objects/commit.py index ac381cd9..d301e301 100644 --- a/git/objects/commit.py +++ b/git/objects/commit.py @@ -34,6 +34,7 @@ from io import BytesIO import logging log = logging.getLogger('git.objects.commit') +log.addHandler(logging.NullHandler()) __all__ = ('Commit', ) diff --git a/git/objects/submodule/base.py b/git/objects/submodule/base.py index f9b0b6ad..30201e09 100644 --- a/git/objects/submodule/base.py +++ b/git/objects/submodule/base.py @@ -43,6 +43,7 @@ __all__ = ["Submodule", "UpdateProgress"] log = logging.getLogger('git.objects.submodule.base') +log.addHandler(logging.NullHandler()) class UpdateProgress(RemoteProgress): diff --git a/git/objects/submodule/root.py b/git/objects/submodule/root.py index 1c863f6f..4fe856c2 100644 --- a/git/objects/submodule/root.py +++ b/git/objects/submodule/root.py @@ -13,6 +13,7 @@ import logging __all__ = ["RootModule", "RootUpdateProgress"] log = logging.getLogger('git.objects.submodule.root') +log.addHandler(logging.NullHandler()) class RootUpdateProgress(UpdateProgress): -- cgit v1.2.1 From d1a9a232fbde88a347935804721ec7cd08de6f65 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 26 Jun 2015 09:17:19 +0200 Subject: fix(logging): monkeypatch logging with NullHandler This will make usage of the `NullHandler` possible in python 2.6 and below. --- git/util.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/git/util.py b/git/util.py index fb459da1..f0a08e79 100644 --- a/git/util.py +++ b/git/util.py @@ -13,6 +13,7 @@ import shutil import platform import getpass import threading +import logging # NOTE: Some of the unused imports might be used/imported by others. # Handle once test-cases are back up and running. @@ -753,3 +754,12 @@ class WaitGroup(object): while self.count > 0: self.cv.wait() self.cv.release() + + +class NullHandler(logging.Handler): + def emit(self, record): + pass + +# In Python 2.6, there is no NullHandler yet. Let's monkey-patch it for a workaround. +if not hasattr(logging, 'NullHandler'): + logging.NullHandler = NullHandler -- cgit v1.2.1