UCP services must provide logging, should conform to a standard logging format, and may utilize shared code to do so.
The following is the intended format to be used when logging from UCP services. When logging from those parts that are no services, a close reasonable approximation is desired.
Timestamp Level RequestID ExternalContextID ModuleName(Line) Function - Message
2006-02-08 22:20:02,165, or the standard ouptut from
%(asctime)s %(levelname)-8s %(req_id)s %(external_ctx)s %(user)s %(module)s(%(lineno)d) %(funcName)s - %(message)s'
See Python Logging for explanation of format.
Components should prefer loggers that are at the module or class level, allowing for finer grained logging control than a global logger.