74 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
============
 | 
						|
Command Logs
 | 
						|
============
 | 
						|
 | 
						|
Logger usage in OpenStackClient is not exactly the same as those in other
 | 
						|
OpenStack projects. The following basic rules should be followed.
 | 
						|
 | 
						|
1. OpenStackClient uses python standard logging library instead of oslo.log
 | 
						|
   so that it will depend on oslo as little as possible.
 | 
						|
 | 
						|
2. All logs except debug log need to be translated. The log message strings
 | 
						|
   that need to be translated should follow the rule of i18n guidelines:
 | 
						|
   https://docs.openstack.org/oslo.i18n/latest/user/guidelines.html
 | 
						|
 | 
						|
3. There are mainly two kinds of logs in OpenStackClient: command specific
 | 
						|
   log and general log. Use different logger to record them. The examples
 | 
						|
   below will show the detail.
 | 
						|
 | 
						|
Command specific log
 | 
						|
====================
 | 
						|
 | 
						|
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.
 | 
						|
 | 
						|
Example
 | 
						|
~~~~~~~
 | 
						|
 | 
						|
This example shows how to log command specific logs in OpenStackClient.
 | 
						|
 | 
						|
.. code-block:: python
 | 
						|
 | 
						|
    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 log
 | 
						|
===========
 | 
						|
 | 
						|
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``.
 | 
						|
 | 
						|
Example
 | 
						|
~~~~~~~
 | 
						|
 | 
						|
This example shows how to log general logs in OpenStackClient.
 | 
						|
 | 
						|
.. code-block:: python
 | 
						|
 | 
						|
    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
 | 
						|
 | 
						|
    ## ...
 |