Logging Custom Levels?

Didymus lynto28 at gmail.com
Tue Mar 31 11:20:52 EDT 2015


Hi,

I've create a Python file called "log.py" and placed in the custom levels:

# Performance Debug...
logging.addLevelName(PDEBUG_NUM, "PDEBUG")

def pdebug(self, message, *args, **kws):
    """ Performance Debug Message Level """
    self.log(PDEBUG_NUM, message, *args, **kws) 
        
logging.Logger.pdebug = pdebug


This works except that the %(module) and %(lineno) does not print properly, it instead prints out as the "log.py" and the line that this is on. I think I figured out a way to get the module and line from the calling custom level:

import inspect
frame = inspect.currentframe()
filename = os.path.splitext(os.path.basename(frame.f_back.f_code.co_filename))[0]
linenumber = frame.f_back.f_lineno


My question is how do I pass this into the "self.log" call properly? I've tried a few different things without any luck. Any ideas how I can pass this into the custom logging level and get it to work?

Thanks in Advance for any help!
    Tom



More information about the Python-list mailing list