[ python-Feature Requests-668905 ] logging module documentation
SourceForge.net
noreply at sourceforge.net
Mon Mar 15 09:47:53 EST 2004
Feature Requests item #668905, was opened at 2003-01-16 05:07
Message generated for change (Comment added) made by vsajip
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=355470&aid=668905&group_id=5470
Category: Documentation
Group: None
Status: Open
Resolution: Accepted
Priority: 5
Submitted By: Richard Jones (richard)
Assigned to: Vinay Sajip (vsajip)
Summary: logging module documentation
Initial Comment:
I believe the logging module documentation needs to give an
example of how to simply log to a file. The following example snippet
could be appropriate:
import logging
logger = logging.getLogger('myapp')
hdlr = FileHandler('/var/myapp/debug.log')
hdlr.setFormatter(Formatter('%(asctime)s %(level)s %(message)s'))
logger.addHandler(hdlr)
logger.setLevel(DEBUG)
----------------------------------------------------------------------
>Comment By: Vinay Sajip (vsajip)
Date: 2004-03-15 14:47
Message:
Logged In: YES
user_id=308438
I assume no one would pass an empty for filename or fmtstr,
as this would make no sense. So I test for both None and the
empty string at the same time using the "if value:" idiom. I
have tried to be consistent with the view that wherever
possible, logging should not generate spurious output (e.g.
throwing exceptions), even when errors occur.
----------------------------------------------------------------------
Comment By: Drew Perttula (drewp)
Date: 2004-03-15 13:19
Message:
Logged In: YES
user_id=127598
ITYM "if filename is not None" , "if fmtstr is None", and
"Formatter(fmtstr)". I like the feature a lot, otherwise.
For the record, the next most common things I do to a logger
is to adjust its root's level to DEBUG but set the level of
the channels I -don't- want to see back to INFO. (Therefore,
any new channels will get output as DEBUG until I put them
in the exclusion list.) I doubt this belongs in basicConfig,
but if there became a convenience method to do it, I'd sure
use it :)
----------------------------------------------------------------------
Comment By: Vinay Sajip (vsajip)
Date: 2004-03-15 11:48
Message:
Logged In: YES
user_id=308438
How about if I modify basicConfig as follows?
def basicConfig(filename=None, fmtstr=None, mode="w"):
"""
Do basic configuration for the logging system.
If a filename is specified, create a FileHandler using it,
otherwise
create a StreamHandler. The created handler is added to
the root logger.
If a format string is specified, it will be used to initialize
the Formatter - otherwise, a suitable default will be used.
The mode is only used when a filename is specified, to
determine how the
file is to be opened.
"""
if len(root.handlers) == 0:
if filename:
hdlr = FileHandler(filename, mode)
else:
hdlr = StreamHandler()
if not fmtstr:
fmtstr = BASIC_FORMAT
fmt = Formatter(fs)
hdlr.setFormatter(fmt)
root.addHandler(hdlr)
----------------------------------------------------------------------
Comment By: Richard Jones (richard)
Date: 2004-03-09 21:21
Message:
Logged In: YES
user_id=6405
Please consider adding a simpler interface for people who just
want to log to a file:
import logging
logger = logging.open('/var/log/myapp.log')
which does the equivalent of:
import logging
logger = logging.getLogger('<default>')
hdlr = logging.FileHandler('/var/log/myapp.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s
%(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.INFO)
which is what I expect most users will want when they first
see this module. If they then want to mess around with
additional handers, or different formatting or whatever, then
they can read the reference doc.
Please make the simplest use-case much simpler!
----------------------------------------------------------------------
Comment By: Raymond Hettinger (rhettinger)
Date: 2004-01-01 07:10
Message:
Logged In: YES
user_id=80475
I would also like to see a more thorough set of introductory
examples. The second page of the unittest documentation
could serve as a model -- it attempts to cover the 90% of
what you need to know in a single page of examples. As it
stands now, the documentation for the logging module is
formidable. Those wanting to take advantage of the module
face a steep learning curve from rather heavyweight
documentation -- it's complexity exceeds that of almost all
modules except for the email and xml packages.
Assigning to Vinay Sajip to work with Anthony to improve the
docs.
----------------------------------------------------------------------
Comment By: Anthony Baxter (anthonybaxter)
Date: 2003-07-08 06:32
Message:
Logged In: YES
user_id=29957
Why was this closed? nnorwitz's doc fixes, as seen in CVS or
http://www.python.org/dev/doc/devel/lib/module-logging.html
have no examples section.
Running the current logging module docs past a number of
python coders here produced a consistent "what the heck?"
response - the opening introduction provides no indications of
how to use the package.
This is a problem for me, right now, so I'm re-opening and
assigning to myself to fix.
----------------------------------------------------------------------
Comment By: Raymond Hettinger (rhettinger)
Date: 2003-06-28 06:37
Message:
Logged In: YES
user_id=80475
Reviewed.
Closing RFE.
----------------------------------------------------------------------
Comment By: Neal Norwitz (nnorwitz)
Date: 2003-01-25 21:36
Message:
Logged In: YES
user_id=33168
I just updated the logging documentation. Could you please
review for accuracy and completeness?
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=355470&aid=668905&group_id=5470
More information about the Python-bugs-list
mailing list