Make sure logs are meaningful, both in content and specified level.
Part One: Log Framework
Make a common log framework compatible with the built-in "logging" module that can we can build extra functionality into. It should be transparent after import.
Part Two: Named Logs
Instead of using "logging.debug('msg')" everywhere, we should be building a "LOG = logging.getLog('nova-modulename')" that we use for publishing messages to.
Part Three: Tracking Context
We should allow a "context=context.RequestContext()" kwarg that can transparently add additional information, such as request id and user, into the log.
Part Four: Custom Formatting from Flags
We should let flags specify format strings for logger.
This is pretty much done in lp:~anso/deploy