Need help in configuration for TimedRotatingFileHandler

Dave Angel davea at ieee.org
Mon Aug 10 10:52:55 EDT 2009


Lokesh Maremalla wrote:
> <snip>
> Code:
> mlogger = logging.getLogger("simpleExample")
> def a_view(request):
>     mlogger.debug("a_view called")
>     if request.method== "POST" :
>         mlogger.debug("post function")
>     else:
>         mlogger.debug("serve function")
>
> Execution:
> step1: Executed the code and got the log file with the information
> step2: Modified the system time from current day to next day
> step3: End up with the error and the error is pasted below
>
> 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
>
> Python version - 2.5.4
>
> I guess my output should be like this for the next day
> -a new log file rotate_test.<date format> should generate in the respective
> location
>
> Please correct me if I am wrong.
>
>
> Thanks for your time.
>
> Regards,
> Lokesh
>
>   
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 the logging package.  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 from logging 
to yesterday's file to logging to 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.

Could someone else who is familiar with logging, and with 
TimedRotatingFileHandler in particular, jump in here?  Preferably a 
Windows person?

DaveA



More information about the Python-list mailing list