Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: Logging to a file and closing it again properly (logging module)

Reply
Thread Tools

Re: Logging to a file and closing it again properly (logging module)

 
 
Christoph Haas
Guest
Posts: n/a
 
      06-14-2006
On Wed, Jun 14, 2006 at 12:29:22PM +0530, Amit Khemka wrote:
> On 6/13/06, Christoph Haas <(E-Mail Removed)> wrote:
> >I have an application that is running in an endless loop processing an
> >incoming queue. Every run is supposed to write a log file about the run
> >and then close it again. While the 'logging' module is generally working
> >well (even though the documentation makes me miss some proper examples
> >how everything works together) I can't seem to close the log file again
> >to open a new one.
> >
> >This is basically what I'm doing:
> >
> >log = logging.getLogger("myapplication")
> >log.addHandler(logging.FileHandler("/tmp/testfile"))
> >log.setLevel(logging.INFO)
> >log.info("foo")
> >
> >Now I'm missing a way to tell this handler to go away. Through 'ipython'
> >I found out there is a log.handlers array that contains all the
> >handlers. Perhaps I could delete all of them but I'm sure there is a
> >more proper way to close files again.
> >
> >Googling found me:
> >
> > .>>> logging._handlers.clear()
> > .>>> logging.root.handlers = []
> > .>>> for l in logging.Logger.manager.loggerDict.values():
> > .>>> l.handlers = []

>
> You can "close" the logger by just removing the handler from the logging
> object
>
> # first creater a logger and file handler
> fooLogger = logging.getLogger('FOO')
> fooLogger.setLevel(logging.INFO)
> fl = logging.FileHandler('foo.txt)
> fl.setLevel(logging.INFO)
> fooLogger.addHandler(fl)
>
> # remove the handler once you are done
> fooLogger.removeHandler(fl)


Thanks. That works great. I was looking for a way to close the log file
using logging.basicConfig but it appears that it's too much magic.
logging.getLogger() isn't really much more work but gives better
control.

Kindly
Christoph
 
Reply With Quote
 
 
 
 
Vinay Sajip
Guest
Posts: n/a
 
      06-14-2006
Christoph Haas wrote:

> Thanks. That works great. I was looking for a way to close the log file
> using logging.basicConfig but it appears that it's too much magic.
> logging.getLogger() isn't really much more work but gives better
> control.


You may also need to close the handler - removeHandler just removes the
handler from the Logger's internal list.

If there are specific areas in the documentation which you feel are
lacking clarity, please post more specific information. Documentation
patches are especially welcome

Regards,

Vinay Sajip

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Closing popup window when closing parent window? =?Utf-8?B?Vk1J?= ASP .Net 3 02-15-2007 08:29 AM
Logging to a file and closing it again properly (logging module) Christoph Haas Python 0 06-12-2006 09:58 PM
Closing the doors 15 minutes before closing. doofus Computer Support 12 06-11-2005 08:20 AM
IE 6 not closing properly Ronnie G Computer Support 2 09-02-2004 03:13 PM
More American Graffiti: Properly Framed, Properly Scored? Scot Gardner DVD Video 0 09-02-2003 02:28 AM



Advertisments