Add log_handler to implement the publish_errors config option

This handler sends all error logs as rpc notifications.
Note: when using publish_errors you also need to set the
notification_driver option too.

Change-Id: I9ceb1fa92118161779b4b29e2cdc3b91f79ab733
Closes-bug: #1229246
This commit is contained in:
Angus Salkeld 2013-10-10 14:55:23 +11:00
parent a7cc2a90d7
commit 54e5260fca
2 changed files with 32 additions and 0 deletions

View File

@ -0,0 +1,31 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright 2013 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
from heat.openstack.common import notifier
from oslo.config import cfg
class PublishErrorsHandler(logging.Handler):
def emit(self, record):
if ('heat.openstack.common.notifier.log_notifier' in
cfg.CONF.notification_driver):
return
notifier.api.notify(None, 'error.publisher',
'error_notification',
notifier.api.ERROR,
dict(error=record.msg))

View File

@ -12,6 +12,7 @@ module=install_venv_common
module=jsonutils module=jsonutils
module=local module=local
module=log module=log
module=log_handler
module=loopingcall module=loopingcall
module=network_utils module=network_utils
module=notifier module=notifier