R
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
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