summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oslo_log/_i18n.py4
-rw-r--r--oslo_log/_options.py2
-rw-r--r--oslo_log/formatters.py24
-rw-r--r--oslo_log/log.py10
-rw-r--r--oslo_log/tests/unit/test_log.py38
-rw-r--r--requirements.txt6
6 files changed, 65 insertions, 19 deletions
diff --git a/oslo_log/_i18n.py b/oslo_log/_i18n.py
index ebd6c45..5813115 100644
--- a/oslo_log/_i18n.py
+++ b/oslo_log/_i18n.py
@@ -18,10 +18,10 @@ See http://docs.openstack.org/developer/oslo.i18n/usage.html .
"""
-from oslo import i18n
+import oslo_i18n
-_translators = i18n.TranslatorFactory(domain='oslo.log')
+_translators = oslo_i18n.TranslatorFactory(domain='oslo.log')
# The primary translation function using the well-known name "_"
_ = _translators.primary
diff --git a/oslo_log/_options.py b/oslo_log/_options.py
index ef6f256..9798f86 100644
--- a/oslo_log/_options.py
+++ b/oslo_log/_options.py
@@ -12,7 +12,7 @@
import copy
-from oslo.config import cfg
+from oslo_config import cfg
_DEFAULT_LOG_DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
diff --git a/oslo_log/formatters.py b/oslo_log/formatters.py
index 11dea3b..47ff005 100644
--- a/oslo_log/formatters.py
+++ b/oslo_log/formatters.py
@@ -20,8 +20,8 @@ import traceback
import six
from six import moves
-from oslo.serialization import jsonutils
from oslo_context import context as context_utils
+from oslo_serialization import jsonutils
def _dictify_context(context):
@@ -169,9 +169,23 @@ class ContextFormatter(logging.Formatter):
record.project = self.project
record.version = self.version
+ # FIXME(dims): We need a better way to pick up the instance
+ # or instance_uuid parameters from the kwargs from say
+ # LOG.info or LOG.warn
+ instance_extra = ''
+ instance = getattr(record, 'instance', None)
+ instance_uuid = getattr(record, 'instance_uuid', None)
context = _update_record_with_context(record)
-
- if context:
+ if instance:
+ try:
+ instance_extra = (self.conf.instance_format
+ % instance)
+ except TypeError:
+ instance_extra = instance
+ elif instance_uuid:
+ instance_extra = (self.conf.instance_uuid_format
+ % {'uuid': instance_uuid})
+ elif context:
# FIXME(dhellmann): We should replace these nova-isms with
# more generic handling in the Context class. See the
# app-agnostic-logging-parameters blueprint.
@@ -182,7 +196,6 @@ class ContextFormatter(logging.Formatter):
# RequestContext
resource_uuid = getattr(context, 'resource_uuid', None)
- instance_extra = ''
if instance:
instance_extra = (self.conf.instance_format
% {'uuid': instance})
@@ -192,7 +205,8 @@ class ContextFormatter(logging.Formatter):
elif resource_uuid:
instance_extra = (self.conf.instance_uuid_format
% {'uuid': resource_uuid})
- record.instance = instance_extra
+
+ record.instance = instance_extra
# NOTE(sdague): default the fancier formatting params
# to an empty string so we don't throw an exception if
diff --git a/oslo_log/log.py b/oslo_log/log.py
index 1f08b88..bb0c330 100644
--- a/oslo_log/log.py
+++ b/oslo_log/log.py
@@ -35,8 +35,8 @@ import socket
import sys
import traceback
-from oslo.config import cfg
-from oslo.utils import importutils
+from oslo_config import cfg
+from oslo_utils import importutils
import six
from six import moves
@@ -285,9 +285,11 @@ def _setup_logging_from_conf(conf, project, version):
# TODO(bogdando) use the format provided by RFCSysLogHandler
# after existing syslog format deprecation in J
if conf.use_syslog_rfc_format:
- syslog = handlers.RFCSysLogHandler(facility=facility)
+ syslog = handlers.RFCSysLogHandler(address='/dev/log',
+ facility=facility)
else:
- syslog = logging.handlers.SysLogHandler(facility=facility)
+ syslog = logging.handlers.SysLogHandler(address='/dev/log',
+ facility=facility)
log_root.addHandler(syslog)
except socket.error:
log_root.error('Unable to add syslog handler. Verify that syslog '
diff --git a/oslo_log/tests/unit/test_log.py b/oslo_log/tests/unit/test_log.py
index 01dc10b..4a801b0 100644
--- a/oslo_log/tests/unit/test_log.py
+++ b/oslo_log/tests/unit/test_log.py
@@ -20,12 +20,12 @@ import sys
import tempfile
import mock
-from oslo.config import cfg
-from oslo.config import fixture as fixture_config # noqa
-from oslo.i18n import fixture as fixture_trans
-from oslo.serialization import jsonutils
+from oslo_config import cfg
+from oslo_config import fixture as fixture_config # noqa
from oslo_context import context
from oslo_context import fixture as fixture_context
+from oslo_i18n import fixture as fixture_trans
+from oslo_serialization import jsonutils
from oslotest import base as test_base
import six
@@ -486,6 +486,36 @@ class FancyRecordTestCase(LogTestBase):
self.assertEqual(infoexpected, self.stream.getvalue())
+class InstanceRecordTestCase(LogTestBase):
+ def setUp(self):
+ super(InstanceRecordTestCase, self).setUp()
+ self.config(logging_context_format_string="[%(request_id)s]: "
+ "%(instance)s"
+ "%(resource)s"
+ "%(message)s",
+ logging_default_format_string="%(instance)s"
+ "%(resource)s"
+ "%(message)s")
+ self.log = log.getLogger()
+ self._add_handler_with_cleanup(self.log)
+ self._set_log_level_with_cleanup(self.log, logging.DEBUG)
+
+ def test_instance_dict_in_context_log_msg(self):
+ ctxt = _fake_context()
+ fake_resource = {'uuid': 'C9B7CCC6-8A12-4C53-A736-D7A1C36A62F3'}
+ self.log.info("info", context=ctxt, instance=fake_resource)
+ infoexpected = "[%s]: [instance: C9B7CCC6-8A12-4C53-A736-" \
+ "D7A1C36A62F3] info\n" % ctxt.request_id
+ self.assertEqual(infoexpected, self.stream.getvalue())
+
+ def test_instance_dict_in_default_log_msg(self):
+ fake_resource = {'uuid': 'C9B7CCC6-8A12-4C53-A736-D7A1C36A62F3'}
+ self.log.info("info", instance=fake_resource)
+ infoexpected = "[instance: C9B7CCC6-8A12-4C53-A736-" \
+ "D7A1C36A62F3] info\n"
+ self.assertEqual(infoexpected, self.stream.getvalue())
+
+
class DomainTestCase(LogTestBase):
def setUp(self):
super(DomainTestCase, self).setUp()
diff --git a/requirements.txt b/requirements.txt
index c978f08..54ada9b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,10 +4,10 @@
pbr>=0.6,!=0.7,<1.0
Babel>=1.3
-six>=1.7.0
+six>=1.9.0
iso8601>=0.1.9
-oslo.config>=1.6.0 # Apache-2.0
-oslo.context>=0.1.0 # Apache-2.0
+oslo.config>=1.9.0 # Apache-2.0
+oslo.context>=0.2.0 # Apache-2.0
oslo.i18n>=1.3.0 # Apache-2.0
oslo.utils>=1.2.0 # Apache-2.0
oslo.serialization>=1.2.0 # Apache-2.0