If nothing is logged during an interval, the TimedRotatingFileHandler will give bad names to future log files. The enclosed example program sets up a logger that rotates the log every second. It then logs a few messages with sleep of 1, 2, 4, 1 and 1 seconds between the messages. The log files will have names that increase with one second per log file, but the content for the last file will be generated a different second. An example run produced the message 2008-03-17 09:16:06: 1 sec later in a log file named badlogdir/logfile.2008-03-17_09-16-02. This problem was likely introduced in revision 42066. The root cause is that self.rolloverAt is increased by self.interval in doRollover - but if nothing was logged for a while, it should be increased by a multiple of self.interval.
The attached program will generate log messages with a timestamp that are logged into a file with an unexpected extension. To run: mkdir badlogdir python badlogger.py Running the program takes about 9 seconds.