From 8f5f29c2226149c1271a1f66cb2b00a211fdcd0d Mon Sep 17 00:00:00 2001 From: Yann MAHE Date: Wed, 21 Sep 2016 15:19:42 -0400 Subject: [PATCH] [logging] rename loggers and set handlers to null Split `dd.datadogpy` logger to one per module, i.e. * `datadog.api` * `datadog.dogstatsd` * `datadog.threadstats` Setup the `NullHandler` handler by default as advised in https://docs.python.org/3/howto/logging.html#configuring-logging-for-a-library --- datadog/__init__.py | 6 ++++++ datadog/api/api_client.py | 2 +- datadog/api/http_client.py | 2 +- datadog/api/resources.py | 6 ------ datadog/dogshell/__init__.py | 5 ----- datadog/dogshell/common.py | 3 --- datadog/dogstatsd/base.py | 3 ++- datadog/threadstats/base.py | 2 +- datadog/util/config.py | 3 --- datadog/util/hostname.py | 2 +- 10 files changed, 12 insertions(+), 22 deletions(-) diff --git a/datadog/__init__.py b/datadog/__init__.py index d58e73393..4a61efdf5 100644 --- a/datadog/__init__.py +++ b/datadog/__init__.py @@ -8,6 +8,7 @@ * datadog.dogshell: a command-line tool, wrapping datadog.api, to interact with Datadog REST API. """ # stdlib +import logging import os import os.path @@ -22,6 +23,11 @@ __version__ = get_version() +# Loggers +logging.getLogger('datadog.api').addHandler(logging.NullHandler()) +logging.getLogger('datadog.dogstatsd').addHandler(logging.NullHandler()) +logging.getLogger('datadog.threadstats').addHandler(logging.NullHandler()) + def initialize(api_key=None, app_key=None, host_name=None, api_host=None, statsd_host=None, statsd_port=None, statsd_use_default_route=False, **kwargs): diff --git a/datadog/api/api_client.py b/datadog/api/api_client.py index 335bd22fc..16850b3f2 100644 --- a/datadog/api/api_client.py +++ b/datadog/api/api_client.py @@ -10,7 +10,7 @@ from datadog.util.compat import json, is_p3k -log = logging.getLogger('dd.datadogpy') +log = logging.getLogger('datadog.api') class APIClient(object): diff --git a/datadog/api/http_client.py b/datadog/api/http_client.py index 2b67829c0..46876746d 100644 --- a/datadog/api/http_client.py +++ b/datadog/api/http_client.py @@ -24,7 +24,7 @@ from datadog.api.exceptions import ClientError, HTTPError, HttpTimeout -log = logging.getLogger('dd.datadogpy') +log = logging.getLogger('datadog.api') class HTTPClient(object): diff --git a/datadog/api/resources.py b/datadog/api/resources.py index 9dbe8a0ef..a58ca5bf1 100644 --- a/datadog/api/resources.py +++ b/datadog/api/resources.py @@ -1,16 +1,10 @@ """ Datadog API resources. """ -# stdlib -import logging - # datadog from datadog.api.api_client import APIClient -log = logging.getLogger('dd.datadogpy') - - class CreateableAPIResource(object): """ Creatable API Resource diff --git a/datadog/dogshell/__init__.py b/datadog/dogshell/__init__.py index a5361a2b4..90c7caab2 100644 --- a/datadog/dogshell/__init__.py +++ b/datadog/dogshell/__init__.py @@ -1,5 +1,4 @@ # stdlib -import logging import os # 3p @@ -21,11 +20,8 @@ from datadog.dogshell.timeboard import TimeboardClient from datadog.util.config import get_version -logging.getLogger('dd.datadogpy').setLevel(logging.CRITICAL) - def main(): - parser = argparse.ArgumentParser(description="Interact with the Datadog API", formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument('--config', help="location of your dogrc file (default ~/.dogrc)", @@ -49,7 +45,6 @@ def main(): config = DogshellConfig() # Set up subparsers for each service - subparsers = parser.add_subparsers(title='Modes', dest='mode') subparsers.required = True diff --git a/datadog/dogshell/common.py b/datadog/dogshell/common.py index 0c7b53251..b948df198 100644 --- a/datadog/dogshell/common.py +++ b/datadog/dogshell/common.py @@ -2,14 +2,11 @@ from __future__ import print_function import os import sys -import logging # datadog from datadog.util.compat import is_p3k, configparser, IterableUserDict,\ get_input -log = logging.getLogger('dd.datadogpy') - def print_err(msg): if is_p3k(): diff --git a/datadog/dogstatsd/base.py b/datadog/dogstatsd/base.py index 771dd0fae..645ea5cbb 100644 --- a/datadog/dogstatsd/base.py +++ b/datadog/dogstatsd/base.py @@ -20,7 +20,8 @@ from datadog.util.compat import text -log = logging.getLogger('dogstatsd') +# Logging +log = logging.getLogger('datadog.dogstatsd') class DogStatsd(object): diff --git a/datadog/threadstats/base.py b/datadog/threadstats/base.py index 40aed001f..be3b67381 100644 --- a/datadog/threadstats/base.py +++ b/datadog/threadstats/base.py @@ -18,7 +18,7 @@ from datadog.threadstats.reporters import HttpReporter # Loggers -log = logging.getLogger('dd.datadogpy') +log = logging.getLogger('datadog.threadstats') class ThreadStats(object): diff --git a/datadog/util/config.py b/datadog/util/config.py index e5b9b9d4a..7241265c8 100644 --- a/datadog/util/config.py +++ b/datadog/util/config.py @@ -1,5 +1,4 @@ import os -import logging import string import sys @@ -9,8 +8,6 @@ # CONSTANTS DATADOG_CONF = "datadog.conf" -log = logging.getLogger('dd.datadogpy') - class CfgNotFound(Exception): pass diff --git a/datadog/util/hostname.py b/datadog/util/hostname.py index 33f90ab79..311e3bcf5 100644 --- a/datadog/util/hostname.py +++ b/datadog/util/hostname.py @@ -12,7 +12,7 @@ VALID_HOSTNAME_RFC_1123_PATTERN = re.compile(r"^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$") # noqa MAX_HOSTNAME_LEN = 255 -log = logging.getLogger('dd.datadogpy') +log = logging.getLogger('datadog.api') def is_valid_hostname(hostname):