summaryrefslogtreecommitdiff
path: root/doc/source
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-06-20 12:55:41 +0000
committerGerrit Code Review <review@openstack.org>2016-06-20 12:55:41 +0000
commit40004b5d80689f9f9cd802b1487f8e78830e6d4f (patch)
tree36f2c9316b16e5a2f4d25f0d06ba3fca0a0828e3 /doc/source
parentba825a4d5c04e2e6fd8a82ebbfb2f71a85e683aa (diff)
parent0ac6b4fa46068773d0c4849388ce2e931d0608bc (diff)
downloadpython-openstackclient-40004b5d80689f9f9cd802b1487f8e78830e6d4f.tar.gz
Merge "Add doc for logger usage"
Diffstat (limited to 'doc/source')
-rw-r--r--doc/source/command-logs.rst73
-rw-r--r--doc/source/index.rst1
2 files changed, 74 insertions, 0 deletions
diff --git a/doc/source/command-logs.rst b/doc/source/command-logs.rst
new file mode 100644
index 00000000..62126510
--- /dev/null
+++ b/doc/source/command-logs.rst
@@ -0,0 +1,73 @@
+============
+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:
+ http://docs.openstack.org/developer/oslo.i18n/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
+
+ ## ...
diff --git a/doc/source/index.rst b/doc/source/index.rst
index 58895533..c8fc6f27 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -51,6 +51,7 @@ Developer Documentation
command-options
command-wrappers
command-errors
+ command-logs
specs/commands
Project Goals