Skip to content

Commit

Permalink
Support timestamps as prefixes for traceback log lines.
Browse files Browse the repository at this point in the history
Traceback lines in the log are now formatted to match other log
lines. So, instead of getting something like:

2012-03-26 14:53:26 ERROR nova.rpc.common [-] AMQP server on 10.55.58.1:5672 is unreachable: Socket closed. Trying again in 1 secon
ds.
(nova.rpc.common): TRACE: Traceback (most recent call last):
(nova.rpc.common): TRACE:   File "/usr/lib/python2.7/dist-packages/nova/rpc/impl_kombu.py", line 446, in reconnect
(nova.rpc.common): TRACE:     self._connect()
(nova.rpc.common): TRACE:   File "/usr/lib/python2.7/dist-packages/nova/rpc/impl_kombu.py", line 423, in _connect
(nova.rpc.common): TRACE:     self.connection.connect()
[snip]

You would get something like:

2012-03-26 14:53:26 ERROR nova.rpc.common [-] AMQP server on 10.55.58.1:5672 is unreachable: Socket closed. Trying again in 1 secon
ds.
2012-03-26 14:53:26 TRACE nova.rpc.common Traceback (most recent call last):
2012-03-26 14:53:26 TRACE nova.rpc.common   File "/usr/lib/python2.7/dist-packages/nova/rpc/impl_kombu.py", line 446, in reconnect
2012-03-26 14:53:26 TRACE nova.rpc.common     self._connect()
2012-03-26 14:53:26 TRACE nova.rpc.common   File "/usr/lib/python2.7/dist-packages/nova/rpc/impl_kombu.py", line 423, in _connect
2012-03-26 14:53:26 TRACE nova.rpc.common     self.connection.connect()
[snip]

This is tracked by bug 967842.

Change-Id: Ie017317f7e0b636016a220cb21a3543ab569dea5
  • Loading branch information
mikalstill committed Mar 28, 2012
1 parent 998e57b commit 318d82b
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion nova/log.py
Expand Up @@ -63,7 +63,7 @@
'%(pathname)s:%(lineno)d',
help='data to append to log format when level is DEBUG'),
cfg.StrOpt('logging_exception_prefix',
default='(%(name)s): TRACE: ',
default='%(asctime)s TRACE %(name)s %(instance)s',
help='prefix each line of exception output with this format'),
cfg.StrOpt('instance_format',
default='[instance: %(uuid)s] ',
Expand Down Expand Up @@ -247,11 +247,16 @@ def formatException(self, exc_info, record=None):
"""Format exception output with FLAGS.logging_exception_prefix."""
if not record:
return logging.Formatter.formatException(self, exc_info)

stringbuffer = cStringIO.StringIO()
traceback.print_exception(exc_info[0], exc_info[1], exc_info[2],
None, stringbuffer)
lines = stringbuffer.getvalue().split('\n')
stringbuffer.close()

if FLAGS.logging_exception_prefix.find('%(asctime)') != -1:
record.asctime = self.formatTime(record, self.datefmt)

formatted_lines = []
for line in lines:
pl = FLAGS.logging_exception_prefix % record.__dict__
Expand Down

0 comments on commit 318d82b

Please sign in to comment.