Alexander Vrchoticky <alexander.vrchoti...@gmx.at> added the comment:

I hit that problem too (Python 2.6.5). We have a Windows service application 
(daemon, in Unix parlance). This is written in Python and uses 
RotatingFileHandler to rotate files when they exceed 1MB. We look at the files 
for debugging. For a live view of log entries, we use less.exe in follow mode. 

If the rotating log handler hits the size limit while the current log file is 
watched, it throws an exception and logging is broken henceforth. Restarting 
the service while less.exe is still running does not help, it hits the same 
exception right from the outset.

Since we cannot stop users from looking at the log files, and we cannot have 
our service application die by user interaction, this is a serious problem.

I am confused by the statement that "you should not look at the files as long 
as they are under the library's control". As I understood, on rotating, the 
oldest file will be deleted, all others will be renamed, and a new file will be 
created. No file will remain untouched. As far as the human log reader is 
concerned, rotation can happen at any time, so all log files are under control 
of the library for their entire life.
If that's true, why bother writing them in the first place? :-)

The root problem is that RotatingFileHandler cannot rename the file while 
less.exe has it open. Under Unix-like file systems, this problem may not 
appear: Renaming an open file works, and the file descriptor held by less.exe 
remains valid. The logger is free to create another file with the same name. 
Under Windows, files and directory entries are more closely related. Hence, the 
error "The process cannot access the file because it is being used by another 
process". I do not know if it is possible to work around this.

Comments are appreciated. RotatingFileHandler looks like a good match for 
long-running service applications. If this issue remains unresolved, it is not. 
A word of warning in the docs seems appropriate in this case.

----------
nosy: +avrchoti

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue11270>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to