Bugs item #1354052, was opened at 2005-11-11 15:03 Message generated for change (Comment added) made by vsajip You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1354052&group_id=5470
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Python Library Group: Python 2.4 >Status: Closed >Resolution: Invalid Priority: 5 Submitted By: Jonathan S. Joseph (jsjoseph) Assigned to: Vinay Sajip (vsajip) Summary: logging: Default handlers broken Initial Comment: Hi, There is a strange behaviour in logging. When a new logger is created, its doesn't have any handlers... until the root logger is invoked, at which point the new logger uses the same handler as the root handler. See the following code snippet as an illustration of the bug: Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> from logging import * >>> z = getLogger("z") >>> z.warning("The Larch.") No handlers could be found for logger "z" >>> warning("Bicycle Repair Man!") WARNING:root:Bicycle Repair Man! >>> z.warning("The Larch.") WARNING:z:The Larch. ---------------------------------------------------------------------- >Comment By: Vinay Sajip (vsajip) Date: 2005-11-12 02:51 Message: Logged In: YES user_id=308438 This is not a bug, this is by design. See the documentation for basicConfig() in http://docs.python.org/lib/module-logging.html where you will see that the module-level convenience functions (debug(), info(), warning(), etc.) call basicConfig() automatically if the root logger has no handlers. The idea is, if you are using the convenience functions, you will be using logging in a simple way - hence, basicConfig() is called for you. If you had used the root logger directly, e.g. after from logging import * by using getLogger().warning("Bicycle Repair Man!") rather than warning("Bicycle Repair Man!") then no handlers would have been added. You would not have received the "No handlers could be found", as that is a one-off message. In the latest revisions, if you set raiseExceptions to 0 (typically for production, not development) then that message is suppressed completely. ---------------------------------------------------------------------- Comment By: Neal Norwitz (nnorwitz) Date: 2005-11-12 01:51 Message: Logged In: YES user_id=33168 This may have been fixed recently. Vinay? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1354052&group_id=5470 _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com