G
Gabor Urban
Hi guys,
I have embarassing problem using the logging module. I would like to
encapsulate the creation and setting up of the logger in a class, but
it does not seem working.
Here are my relevant parts of the code:
--
import sys
import logging
class LogClass:
def __init__(self, fileName, loggerName = 'classLog'):
self.Logger = logging.getLogger(loggerName)
self.traceName = fileName
handler = logging.FileHandler(self.traceName,'a')
formatter = logging.Formatter("%(name)s %(asctime)s
%(filename)s %(lineno)d %(levelname)s %(message)s")
handler.setFormatter(formatter)
self.Logger.addHandler(handler)
self.Handler = handler
def closeLog(self):
self.Handler.flush()
self.Handler.close()
def fetchLogger(self):
return self.Logger
if __name__ == "__main__":
name = 'testlog.trc'
classLog = LogClass(name)
logger = classLog.fetchLogger()
logger.info("Created")
logger.debug("Test")
logger.info("Created .. ")
logger.debug("Test data")
classLog.closeLog()
--
The trace file is created properly but contains no lines at all. If I
put the code directly in __main__, it works fine.
What did I miss? Any ideas are wellcome.
Gabor
I have embarassing problem using the logging module. I would like to
encapsulate the creation and setting up of the logger in a class, but
it does not seem working.
Here are my relevant parts of the code:
--
import sys
import logging
class LogClass:
def __init__(self, fileName, loggerName = 'classLog'):
self.Logger = logging.getLogger(loggerName)
self.traceName = fileName
handler = logging.FileHandler(self.traceName,'a')
formatter = logging.Formatter("%(name)s %(asctime)s
%(filename)s %(lineno)d %(levelname)s %(message)s")
handler.setFormatter(formatter)
self.Logger.addHandler(handler)
self.Handler = handler
def closeLog(self):
self.Handler.flush()
self.Handler.close()
def fetchLogger(self):
return self.Logger
if __name__ == "__main__":
name = 'testlog.trc'
classLog = LogClass(name)
logger = classLog.fetchLogger()
logger.info("Created")
logger.debug("Test")
logger.info("Created .. ")
logger.debug("Test data")
classLog.closeLog()
--
The trace file is created properly but contains no lines at all. If I
put the code directly in __main__, it works fine.
What did I miss? Any ideas are wellcome.
Gabor