Hans Fangohr wrote: > Hi Kent (and others), > > On 01/09/06, Kent Johnson <[EMAIL PROTECTED]> wrote: > >> How are you running the program? What OS? What Python (2.3.??) >> > This is python 2.3.5 on Debian etch. Same results with python 2.4.4 on > Debian etch (although 'the linenumber' is 1072 instead of 988). > Running from the command line or in IDLE or ?? > >> Looking at the source (Python23\Lib\logging\__init__.py), the line >> number is pulled out of the stack by walking up the stack looking for a >> frame whose filename is different from _srcfile. What do you get if you >> print logging._srcfile and logging.__file__? >> > /usr/lib/python2.4/logging/__init__.py > /usr/lib/python2.4/logging/__init__.pyc > > I guess these files should rather be my source file(?). But they aren't. > No, they seem correct, they are the source file of the logging module.
I'm perplexed, the values above seem correct. The way the logging module finds the line number is, it walks up through the stack looking for a stack frame that references a file different from the file containing the module itself. It uses the file and line number from that stack frame for the log. For some reason your stack frame has something different. One thing you could do is add a print to the logging module itself to see what it is seeing. In Python 2.3, there is a findCaller() method at lin 961 of logging/__init__.py. You could add print filename just after the line filename = os.path.normcase(co.co_filename) Then run your program again and see what it prints out. Kent _______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor
