RotatingFileHandler and logging config file

2005-03-14 Thread Rob Cranfill
Hello,
I've successfully coded Python to do what I want with a 
RotatingFileHandler, but am having trouble getting the same behavior via 
a config file.

I wanted to create one log file each time I run my app, with up to 10 
files kept from the last invocations. This was accomplished with

  self._logger = logging.getLogger('PDGUI')
  # We will rotate the files 'manually', so use zero rotate size.
  handler = logging.handlers.RotatingFileHandler( \
   "..\\PDGUI.log", "a", 0, 10)
  handler.doRollover() # force the next file to be used
  formatter = logging.Formatter("%(asctime)s " + \
   "%(levelname)s\t%(message)s")
  handler.setFormatter(formatter)
  self._logger.addHandler(handler)
  self._logger.setLevel(logging.INFO)
I'd like to do the same thing with a config file (so that, if this 
*isn't* the behavior I want, I can change the config file, of course).
I started with a rather plain config file, with the only interesting bit 
being:

[handler_hand01]
class=handlers.RotatingFileHandler
level=NOTSET
formatter=form01
args=("..\\PDGUI.log", "a", 0, 10,)
But I still have one problem - how do I force the "handler.doRollover()" 
to happen with the config file? There doesn't seem to be any way to do 
this in the config file itself, which is OK and perhaps appropriate 
[BTW, has anyone else noticed that RotatingFileHandler isn't documented 
in the docs? All the other file handlers have at least a paragraph on 
their options, but nothing for RFH!]

I can't find any way to do the handler.doRollover() in code, either, if 
I've started off with a config file. Something like

  logging.config.fileConfig(options.logconfig)
  # BUGBUG If the config file specifies a RotatingFileHandler,
  # we need to force a doRollover now, but there's no way!
  #
  handler = logging.getLogger().getHandler() # THIS DOESN'T EXIST!
  handler.doRollover() # force the next file to be used
Ideas, suggestions, etc? It's too bad - with the code method, I can do 
exactly what I want, but not with the config file.

  - rob


--
http://mail.python.org/mailman/listinfo/python-list


Re: RotatingFileHandler and logging config file

2005-03-15 Thread Rob Cranfill
Kent Johnson wrote:
It is in the latest docs.
Kent
No, it isn't. (But thanks for replying anyway!)
  http://docs.python.org/lib/logging-config-fileformat.html
has all the others (OK, maybe not all, I haven't thoroughly checked, but 
it's got nine of 'em) but nothing for RFH.

Or is that not "the latest docs"?
- rob
--
http://mail.python.org/mailman/listinfo/python-list


Re: RotatingFileHandler and logging config file

2005-03-16 Thread Rob Cranfill
news.sydney.pipenetworks.com wrote:
You're looking in the wrong place. Try
http://docs.python.org/lib/node333.html
which isn't quite the page in question, but leads to the closest 
pertinent page,
  http://docs.python.org/lib/logging-config-fileformat.html
which *still* has nothing on RotatingFileHandler.

That's OK, I've given up on the idea of being able to configure a 
RotatingFileHandler from a config file; I'll do it in my code as a 
default, and if users want any *other* behavior, they can config *that*.

- rob
--
http://mail.python.org/mailman/listinfo/python-list


Re: RotatingFileHandler and logging config file

2005-03-16 Thread Rob Cranfill
Peter Hansen wrote:
The missing piece of the puzzle might be the connection
between the 'args' in the config file and the arguments
passed to the __init__ method of the class
Yes, I can puzzle out the constructor args ("constructor", heh heh, must 
be a Java Man) but it's how to get it to do a doRollover() that's in 
question. No sign of support for it in the docs (which your link to 
doesn't elucidate RotatingFileHandler any better than my original) but 
that's OK, see my following message to <[EMAIL PROTECTED]> (what a 
funny name!)

- rob
--
http://mail.python.org/mailman/listinfo/python-list


Re: RotatingFileHandler and logging config file

2005-03-19 Thread Rob Cranfill
Bengt Richter wrote:
The first hit is 
   http://docs.python.org/lib/node332.html
HTH
NID (No, It Doesn't)  ;-)  but thanks anyway. To reiterate, the question 
is how to make RotatingFileHandler do a doRotate() on startup from a 
*config file*. No mention of that in what you point to.

- rob
--
http://mail.python.org/mailman/listinfo/python-list


Re: RotatingFileHandler and logging config file

2005-03-19 Thread Rob Cranfill
news.sydney.pipenetworks.com wrote:
Yeah...sorry about that. I misunderstood what node333.html was used for. 
Looks like your best bet may be to extend the RotatingFileHandler 
directly in the handlers module and call doRollover() in __init__.
Ah, now *there's* an intriguing approach! I am too much a Python noob to 
know - can I subclass RFH and then invoke that new class from a config 
file (the crux of my original question) ?  I may play around with it 
today

Thanks,
- rob
--
http://mail.python.org/mailman/listinfo/python-list