Skip to content

Commit

Permalink
Add log_handler to implement the publish_errors config option
Browse files Browse the repository at this point in the history
Synced from Olso.
Commit Id is Ibf28ba17f81b5ddeda653f6a3501ecac18ffcd42

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: Ic97b9c8b84d51c84a53ace5b86cc2e72c744f136
Closes-bug: #1240349
  • Loading branch information
juvxiao committed Nov 11, 2013
1 parent 5086f28 commit 1c4e279
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
31 changes: 31 additions & 0 deletions nova/openstack/common/log_handler.py
@@ -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 nova.openstack.common import notifier

from oslo.config import cfg


class PublishErrorsHandler(logging.Handler):
def emit(self, record):
if ('nova.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))
1 change: 1 addition & 0 deletions openstack-common.conf
Expand Up @@ -19,6 +19,7 @@ module=jsonutils
module=local
module=lockutils
module=log
module=log_handler
module=loopingcall
module=memorycache
module=network_utils
Expand Down

0 comments on commit 1c4e279

Please sign in to comment.