Need help in configuration for TimedRotatingFileHandler

Vinay Sajip vinay_sajip at yahoo.co.uk
Tue Aug 11 06:23:00 EDT 2009


On Aug 10, 3:52 pm, Dave Angel <da... at ieee.org> wrote:
> Lokesh Maremalla wrote:
> > Traceback (most recent call last):
> >   File "c:\Python25\lib\logging\handlers.py", line 74, in emit
> >     self.doRollover()
> >   File "c:\Python25\lib\logging\handlers.py", line 274, in doRollover
> >     os.rename(self.baseFilename, dfn)
> > WindowsError: [Error 32] The process cannot access the file because it is
> > being used by another process
>
> Generally speaking, this error on os.rename() will occur if you haven't
> properly closed the file first, and if I recall correctly, Unix would
> have permitted a rename on an open file.  You're on Windows.  However, I
> don't know how that works with theloggingpackage.  If the program has
> terminated, and you run it a second time on the following day (or after
> changing the system time), then I'd expect no trouble.  But I'm guessing
> your program is still running, and you just want to change fromlogging
> to yesterday's file tologgingto today's file.
>
> If I had to guess, I'd say that you have two instances of the logger
> running, and the second one is still holding the handle open.  But
> that's just a wild guess.
>

It's certainly possible that there are two instances of the handler,
which would cause this problem. Other things which might cause this
problem are the file handle inherited by a child process, an anti-
virus scanner having the file open for scanning (anti-virus scanners
often scan files which have just been written, like log files) and
indexing software such as Google Desktop or Windows' own indexing
service.

I would advise using sysinternals tools such as FileMon and Handle to
see what's holding the file open.

Regards,


Vinay Sajip



More information about the Python-list mailing list