Remove import collectd from logger.py
collectd is now passed from the plugin by using logger handler constructor Closes-Bug: #1615352 Change-Id: I353dc42cc24669a38554ea952355e62b1942b219
This commit is contained in:
parent
4b47d1a273
commit
b205ce2898
|
@ -13,39 +13,47 @@
|
|||
# under the License.
|
||||
"""Ceilometer collectd plugin implementation"""
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# pylint: disable=import-error
|
||||
import collectd
|
||||
# pylint: enable=import-error
|
||||
from collectd_ceilometer.settings import Config
|
||||
import logging
|
||||
import traceback
|
||||
|
||||
from collectd_ceilometer.settings import Config
|
||||
|
||||
|
||||
class CollectdLogHandler(logging.Handler):
|
||||
"""A handler class for collectd plugin"""
|
||||
|
||||
priority_map = {
|
||||
logging.DEBUG: collectd.debug,
|
||||
logging.INFO: collectd.info,
|
||||
logging.WARNING: collectd.warning,
|
||||
logging.ERROR: collectd.error,
|
||||
logging.CRITICAL: collectd.error
|
||||
}
|
||||
# pylint: disable=no-member
|
||||
cfg = Config.instance()
|
||||
|
||||
def __init__(self, collectd, level=logging.NOTSET):
|
||||
super(CollectdLogHandler, self).__init__(level=level)
|
||||
self.priority_map = {
|
||||
logging.DEBUG: collectd.debug,
|
||||
logging.INFO: collectd.info,
|
||||
logging.WARNING: collectd.warning,
|
||||
logging.ERROR: collectd.error,
|
||||
logging.CRITICAL: collectd.error
|
||||
}
|
||||
|
||||
def emit(self, record):
|
||||
try:
|
||||
msg = self.format(record)
|
||||
self.emit_message(
|
||||
message=self.format(record),
|
||||
level=record.levelno)
|
||||
# pylint: disable=broad-except
|
||||
except Exception:
|
||||
self.emit_message(
|
||||
message="Error emitting message:\n{}".format(
|
||||
traceback.format_exc()),
|
||||
level=logging.ERROR)
|
||||
|
||||
logger = self.priority_map.get(record.levelno, collectd.error)
|
||||
def emit_message(self, message, level):
|
||||
if self.cfg.VERBOSE and level == logging.DEBUG:
|
||||
level = logging.INFO
|
||||
elif level not in self.priority_map:
|
||||
level = logging.ERROR
|
||||
hook = self.priority_map[level]
|
||||
|
||||
if self.cfg.VERBOSE and logging.DEBUG == record.levelno:
|
||||
logger = collectd.info
|
||||
|
||||
# collectd limits log size to 1023B, this is workaround
|
||||
for i in range(0, len(msg), 1023):
|
||||
logger(msg[i:i + 1023])
|
||||
|
||||
except Exception as e:
|
||||
collectd.info("Exception in logger %s" % e)
|
||||
# collectd limits log size to 1023B, this is workaround
|
||||
for i in range(0, len(message), 1023):
|
||||
hook(message[i:i + 1023])
|
||||
|
|
|
@ -25,7 +25,7 @@ from collectd_ceilometer.settings import Config
|
|||
from collectd_ceilometer.writer import Writer
|
||||
import logging
|
||||
|
||||
logging.getLogger().addHandler(CollectdLogHandler())
|
||||
logging.getLogger().addHandler(CollectdLogHandler(collectd=collectd))
|
||||
logging.getLogger().setLevel(logging.NOTSET)
|
||||
LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
|
Loading…
Reference in New Issue