Logger usage in OpenStackClient is not exactly the same as those in other OpenStack projects. The following basic rules should be followed.
Command specific logs are those messages that used to record info, warning and error generated from a specific command. OpenStackClient uses the logger of the module the command belongs to to record the command specific logs.
This example shows how to log command specific logs in OpenStackClient.
import logging
from openstackclient.i18n import _
LOG = logging.getLogger(__name__) # Get the logger of this module
## ...
LOG.error(_("Error message"))
LOG.warning(_("Warning message"))
LOG.info(_("Info message"))
LOG.debug("Debug message") # Debug messages do not need to be translated
## ...
General logs are those messages that not specific to any single command. Use the logger of openstackclient.shell to record them. In each command class, we can simply get this logger by self.app.log.
This example shows how to log general logs in OpenStackClient.
from openstackclient.i18n import _
## ...
self.app.log.error(_("Error message"))
self.app.log.warning(_("Warning message"))
self.app.log.info(_("Info message"))
self.app.log.debug("Debug message") # Debug messages do not need to be translated
## ...