PythonWin debugger holds onto global logging objects too long

Mark Hammond skippy.hammond at gmail.com
Wed Feb 8 00:04:29 CET 2012


On 7/02/2012 9:48 PM, Jean-Michel Pichavant wrote:
> Vinay Sajip wrote:
>> On Jan 24, 2:52 pm, Rob Richardson <RDRichard... at rad-con.com> wrote:
>>> I use PythonWin to debug the Python scripts we write. Our scripts
>>> often use the log2pyloggingpackage. When running the scripts inside
>>> the debugger, we seem to get oneloggingobject for every time we run
>>> the script. The result is that after running the script five times,
>>> the log file contains five copies of every message. The only way I
>>> know to clean this up and get only a single copy of each message is
>>> to close PythonWin and restart it.
>>>
>>> What do I have to do in my scripts to clean up theloggingobjects so
>>> that I never get more than one copy of each message in my log files?
>>>
>>
>> I don't know what log2py is - Google didn't show up anything that
>> looked relevant. If you're talking about the logging package in the
>> Python standard library, I may be able to help: but a simple script
>> that I ran in PythonWin didn't show any problems, so you'll probably
>> need to post a short script which demonstrates the problem when run in
>> PythonWin.
>>
>> Regards,
>>
>> Vinay Sajip
> Same here, can't find anything about log2py.
> Anyway it's possible that your pythonwin does not spawn a clean python
> interpreter for every run, keeping the same one.

That is what everyone's pythonwin does :)  It always works "in process" 
- not ideal, but also likely to not change.

Cheers,

Mark

>
> So you could possibly keep adding log handlers to your loggers because
> they may be static objects (like for the standard logging module).
> One solution would be to empty your logger handler list before adding any.
>
> I'm just guessing though, difficult to know without any info on log2py.
>
> JM




More information about the Python-list mailing list