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