[openstack-dev] [log] LOG.exception should contain an exception message or not?
sean.mcginnis at gmx.com
Tue Jan 5 21:02:01 UTC 2016
On Tue, Jan 05, 2016 at 10:08:42PM +0900, Akihiro Motoki wrote:
> # cross-posting to -dev and -operators ML
> In the current most OpenStack implementation,
> when we use LOG.exception, we don't pass an exception message to LOG.exception:
> LOG.exception(_LE("Error while processing VIF ports"))
> IIUC it is because the exception message will be logged at the end of
> a corresponding stacktrace.
> We will get a line like (Full log: http://paste.openstack.org/show/483018/):
> ERROR ... Error while processing VIF ports
> Many logging tools are still line-oriented (though logstash or fluentd
> can handle multiple lines).
> An ERROR line only contains a summary message without the actual failure reason.
> This makes difficult for line-oriented logging tools to classify error logs.
> My proposal is to pass an exception message to LOG.exception like:
> except <some exception> as exc:
> LOG.exception(_LE("Error while processing VIF ports: %s"), exc)
Why use LOG.exception then? It sounds like for what you are looking for
you would be better off using LOG.error and passing in your exception
The only benefit that LOG.exception gives you over LOG.error is that it
will automatically log out whatever exception is in scope. It is still
at the ERROR level of logging. So if the results from LOG.exception
don't give you what you want, the exact same resulting behavior can be
accomplished by LOG.error with a message string formatted however you
That would be my recommendation at least. :)
> This alllows line-oriented logging tools to classify error logs more easily.
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
More information about the OpenStack-dev