On Tue, 9 Jun 2009 18:10:18 +0100, A. Cavallo <a.cava...@mailsnare.com> wrote:
[top-posting fixed] > On Tuesday 09 June 2009 16:57:00 kretel wrote: >> Hi All, >> >> I am trying to implement the following functionality: >> 1. log messages to the flash drive >> 2. if the flash drive is not available, switch handler to the >> BufferringHandler and log into buffer, >> 3. once the flash drive is plugged in and available store the logs >> from BufferHandler into that flash drive and switch the handler into >> RotateFileHandler. >> >> Which approach would you suggest to use while implementing this >> functionality? First, to ignore the words "flash drive" and think in terms of "can I open the file named so-and-so for writing?". Unless you absolutely must avoid storing your file on a file system based on some other storage technology. >> One that come into my mind is to have one process or >> thread to check periodically if the flashdrive is available, and have >> a flag that will indicate that we can store the logs into the flash >> drive. But I don't particularly like this approach. >> Would you do it different way? >> Any suggestions are appreciated. > Hi, > the problem screams for a separate thread. I don't hear any screaming. It seems simpler to just def log(something): if logging_to_memore() and seconds_since_i_last_checked() > N: try_to_switch_to_file() do_the_actual_logging(something) unless it's vital that as many of these logs as possible survive a crash (in which case I guess the program would also refuse to exit until the user finds the physical flash memory device somewhere and mounts it correctly -- flashback to ancient floppy-based Macs). Yes, I find the requirements quite odd. /Jorgen -- // Jorgen Grahn <grahn@ Ph'nglui mglw'nafh Cthulhu \X/ snipabacken.se> R'lyeh wgah'nagl fhtagn! -- http://mail.python.org/mailman/listinfo/python-list