Interessting alternatives, but they do not quite come on as flexible/usefull enough…

Often debug statements have a lot of text and variables, like:

log.debug( "The value of X, Y, Z is now: %d %s %d" % ( x, lookup(y), factorial(2**15))

It would be nice if args in log.debug() was only evaluated if debug was on. But I don't think this is possible with the current Python evaluation rules.

But if debug() was indeed NOP'able, maybe it could be done ?

/Rene

On Dec 25, 2012, at 10:35 AM, Jakob Bowyer <jkbbwr@gmail.com> wrote:

Why not pass the function/method, args, kwargs to log.debug and let log.debug decide if it should execute or not,
e.g.

log.debug(factorial, 2**15)


On Tue, Dec 25, 2012 at 7:40 AM, Jasper St. Pierre <jstpierre@mecheye.net> wrote:
if __debug__:
    log(factorial(2**15))

Running python with -O will squash this statement. To have something inline, you could also abuse assert statements to do the job.

def debug_log(x):
    log(x)
    return True

assert debug_log(factorial(2**15))

In optimized builds, the statement will be removed entirely.



On Tue, Dec 25, 2012 at 1:28 AM, anatoly techtonik <techtonik@gmail.com> wrote:
For the logging module it will be extremely useful if Python included a way to disactivate processing certain blocks to avoid making sacrifices between extensive logging harness and performance. For example, instead of writing:

if log.DEBUG==True:
  log(factorial(2**15))

It should be possible to just write:
  log(factorial(2**15))

if if log() is an instance of some Nopable class, the statement in log's braces is not executed.
-- 
anatoly t.

_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
http://mail.python.org/mailman/listinfo/python-ideas




--
  Jasper

_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
http://mail.python.org/mailman/listinfo/python-ideas


_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
http://mail.python.org/mailman/listinfo/python-ideas