[Python-checkins] r87202 - python/branches/py3k/Doc/library/logging.rst

vinay.sajip python-checkins at python.org
Sun Dec 12 23:45:35 CET 2010


Author: vinay.sajip
Date: Sun Dec 12 23:45:35 2010
New Revision: 87202

Log:
Logging documentation - further update.

Modified:
   python/branches/py3k/Doc/library/logging.rst

Modified: python/branches/py3k/Doc/library/logging.rst
==============================================================================
--- python/branches/py3k/Doc/library/logging.rst	(original)
+++ python/branches/py3k/Doc/library/logging.rst	Sun Dec 12 23:45:35 2010
@@ -146,15 +146,35 @@
    INFO:root:So should this
    WARNING:root:And this, too
 
+This example also shows how you can set the logging level which acts as the
+threshold for tracking. In this case, because we set the threshold to
+``DEBUG``, all of the messages were printed.
+
+If you want to set the logging level from a command-line option such as::
+
+   --log=INFO
+
+and you have the value of the parameter passed for ``--log`` in some variable
+*loglevel*, you can use::
+
+   getattr(logging, loglevel.upper())
+
+to get the value which you'll pass to :func:`basicConfig` via the *level*
+argument. You may want to error check any user input value, perhaps as in the
+following example::
+
+   # assuming loglevel is bound to the string value obtained from the
+   # command line argument. Convert to upper case to allow the user to
+   # specify --log=DEBUG or --log=debug
+   numeric_level = getattr(logging, loglevel.upper(), None)
+   assert numeric_level is not None, 'Invalid log level: %s' % loglevel
+   logging.basicConfig(level=numeric_level, ...)
+
 The call to :func:`basicConfig` should come *before* any calls to :func:`debug`,
 :func:`info` etc. As it's intended as a one-off simple configuration facility,
 only the first call will actually do anything: subsequent calls are effectively
 no-ops.
 
-This example also shows how you can set the logging level which acts as the
-threshold for tracking. In this case, because we set the threshold to
-``DEBUG``, all of the messages were printed.
-
 If you run the above script several times, the messages from successive runs
 are appended to the file *example.log*. If you want each run to start afresh,
 not remembering the messages from earlier runs, you can specify the *filemode*


More information about the Python-checkins mailing list