[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

How to check if the logfile of a Logger instance is closed?

ChrisKaelin

4/17/2007 2:23:00 PM

If I do:

l = Logger.new("testlog")
l.close

now if I want to close it again, I get:
IOError: closed stream

So far, I have checked for this error (by rescue clause), to see, if
the logfile is already closed. Is there a more elegant way to check if
the instance (i.e. the logfile stream) is already closed?

2 Answers

khaines

4/17/2007 2:49:00 PM

0

ChrisKaelin

4/17/2007 3:23:00 PM

0


khaines@enigo.com wrote:
> On Tue, 17 Apr 2007, ChrisKaelin wrote:
>
> > If I do:
> >
> > l = Logger.new("testlog")
> > l.close
> >
> > now if I want to close it again, I get:
> > IOError: closed stream
> >
> > So far, I have checked for this error (by rescue clause), to see, if
> > the logfile is already closed. Is there a more elegant way to check if
> > the instance (i.e. the logfile stream) is already closed?
>
> Logger doesn't provide a method to check this, so what you are doing is
> right.
>
> You can look at log4r (http://log4r.source...) for a logger that
> supports a closed? method, and which is pretty flexible.
>
> You might also look at my asynchronous logger, Analogger
> (http://analogger.swi...). It supports a closed? method, as
> well.
>
> It also looks like it would be pretty easy to subclass Logger and
> LogDevice to create a version that implements closed?.
>
>
> Kirk Haines
Thanks, I was thinking too of subclassing Logger for that, but the
rescue clause seems to do this work well enough ;-)

Analogger looks great, but for my simple script framework it is a bit
too much. I'll check it, if I do bigger projects in the future...