Using logging module to log into flash drive

Jorgen Grahn grahn+nntp at snipabacken.se
Wed Jun 10 18:24:12 EDT 2009


On Tue, 9 Jun 2009 18:10:18 +0100, A. Cavallo <a.cavallo at 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!



More information about the Python-list mailing list