Can I get logging.FileHandler to close the file on each emit?

rikardhulten at gmail.com rikardhulten at gmail.com
Wed Aug 29 08:57:11 EDT 2012


On Wednesday, August 29, 2012 2:48:57 PM UTC+2, Mark Lawrence wrote:
> On 29/08/2012 11:18,  wrote:
> 
> > I use logging.FileHandler (on windows) and I would like to be able to delete the file while the process is running and have it create the file again on next log event.
> 
> >
> 
> > On windows (not tried linux) this is not possible because the file is locked by the process, can I get it to close the file after each log event?
> 
> >
> 
> > If not, would the correct thing to do be to write my own LogHandler with this behavior?
> 
> >
> 
> > / Rikard
> 
> >
> 
> 
> 
> I know little about the logging module but given that the FileHandler[1] 
> 
> has a close method, can you simply call that, delete the file and reopen 
> 
> where needed?  Failing that I'd look at subclassing existing code and 
> 
> not writing your own (Your wording implies to me that you're thinking of 
> 
> writing something from scratch, my apologies should I be wrong on that).
> 
> 
> 
> [1] http://docs.python.org/dev/library/logging.handlers.html
> 
> 
> 
> -- 
> 
> Cheers.
> 
> 
> 
> Mark Lawrence.

I want to delete the file from outside the process while it is running, so in the code I have no idea when that is...

I meant subclassing logging.Handler, which I went ahead and tried and it seems to work as I like.

Basically in emit I do
1. open log file
2. write msg to it
3. close file

/ Rikard



More information about the Python-list mailing list