Add a NullHandler to all of our loggers
As a library, it's important to make sure our logging is set up to not be confusing, but also to not to step on the toes of app developers. https://docs.python.org/3.1/library/logging.html#configuring-logging-for-a-library Change-Id: I312871e057ca0f64b9c5514bc94567cbdb34b4c6
This commit is contained in:
parent
2e350d034c
commit
03c1556a12
@ -51,6 +51,7 @@ import warnings
|
||||
warnings.filterwarnings('ignore', 'Certificate has no `subjectAltName`')
|
||||
|
||||
from shade.exc import * # noqa
|
||||
from shade import _log
|
||||
from shade import meta
|
||||
from shade import task_manager
|
||||
from shade import _tasks
|
||||
@ -106,7 +107,7 @@ def simple_logging(debug=False):
|
||||
log_level = logging.DEBUG
|
||||
else:
|
||||
log_level = logging.INFO
|
||||
log = logging.getLogger('shade')
|
||||
log = _log.setup_logging('shade')
|
||||
log.addHandler(logging.StreamHandler())
|
||||
log.setLevel(log_level)
|
||||
|
||||
@ -220,7 +221,7 @@ class OpenStackCloud(object):
|
||||
cache_arguments=None,
|
||||
manager=None, **kwargs):
|
||||
|
||||
self.log = logging.getLogger('shade')
|
||||
self.log = _log.setup_logging('shade')
|
||||
if not cloud_config:
|
||||
config = os_client_config.OpenStackConfig()
|
||||
cloud_config = config.get_one_cloud(**kwargs)
|
||||
|
28
shade/_log.py
Normal file
28
shade/_log.py
Normal file
@ -0,0 +1,28 @@
|
||||
# Copyright (c) 2015 IBM Corp.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import logging
|
||||
|
||||
|
||||
class NullHandler(logging.Handler):
|
||||
def emit(self, record):
|
||||
pass
|
||||
|
||||
|
||||
def setup_logging(name):
|
||||
log = logging.getLogger(name)
|
||||
if len(log.handlers) == 0:
|
||||
h = NullHandler()
|
||||
log.addHandler(h)
|
||||
return log
|
@ -12,10 +12,11 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
from shade import _log
|
||||
|
||||
log = _log.setup_logging(__name__)
|
||||
|
||||
|
||||
class OpenStackCloudException(Exception):
|
||||
|
@ -14,16 +14,16 @@
|
||||
|
||||
|
||||
import bunch
|
||||
import logging
|
||||
import six
|
||||
|
||||
from shade import exc
|
||||
from shade import _log
|
||||
from shade import _utils
|
||||
|
||||
|
||||
NON_CALLABLES = (six.string_types, bool, dict, int, float, list, type(None))
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log = _log.setup_logging(__name__)
|
||||
|
||||
|
||||
def find_nova_addresses(addresses, ext_tag=None, key_name=None, version=4):
|
||||
|
@ -17,13 +17,14 @@
|
||||
# limitations under the License.
|
||||
|
||||
import abc
|
||||
import logging
|
||||
import sys
|
||||
import threading
|
||||
import time
|
||||
|
||||
import six
|
||||
|
||||
from shade import _log
|
||||
|
||||
|
||||
@six.add_metaclass(abc.ABCMeta)
|
||||
class Task(object):
|
||||
@ -78,7 +79,7 @@ class Task(object):
|
||||
|
||||
|
||||
class TaskManager(object):
|
||||
log = logging.getLogger("shade.TaskManager")
|
||||
log = _log.setup_logging("shade.TaskManager")
|
||||
|
||||
def __init__(self, client, name):
|
||||
self.name = name
|
||||
|
Loading…
x
Reference in New Issue
Block a user