On 3/29/2011 12:35 PM, Vinay Sajip wrote:
I'm planning a change to logging.basicConfig to add an optional "handlers"
keyword argument which defaults to None.

If specified, this should be an iterable of already created handlers, which will
be added to the root logger (if it doesn't already have any handlers). Any
handler in the iterable which does not have a formatter assigned will be
assigned the formatter created by basicConfig.

If "handlers" is specified, the "stream", "filename" and "filemode" arguments
will be ignored.

If any of you can see any problems with this change, or can suggest any
improvement to the approach, please respond. I expect to check this change in
within the next few days.

I am bothered by mutually exclusive parameters. This is one reason I was glad to see cmp eliminated from list.sort. Quick: what happens if one passes both cmp and key to list.sort? There are three reasonable possibilities. As far as I can read, the answer is not documented.#

I am not familiar with logging, but I wonder if you should have two functions for the two quite different signatures. If not, I think the result of passing conflicting parameters should be something like TypeError: conflicting parameters passed. "In the face of ambiguity, refuse to guess."

# Experiment with 2.7 shows that cmp wins. Though too late to change, I consider this the worst choice of three. I think an exception should be raised. Failing that, I think key should win on the basis that if one adds a 'new-fangled' key func to an existing call with cmp (and forgets to remove cmp), the key func is the one intended. Also, the doc clearly indicates that key is considered superior to cmp.

--
Terry Jan Reedy

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to