Un peu de modularité.
This commit is contained in:
parent
3897336b48
commit
1a333ad482
1 changed files with 49 additions and 19 deletions
|
@ -25,37 +25,67 @@ class CLogger(logging.Logger):
|
||||||
"""
|
"""
|
||||||
super(CLogger, self).__init__(loggerName)
|
super(CLogger, self).__init__(loggerName)
|
||||||
|
|
||||||
|
self.c_formatter = None
|
||||||
|
self.c_file_handler = None
|
||||||
|
self.c_sh = None
|
||||||
|
self.c_level = level
|
||||||
|
|
||||||
# When no service is specified, we don't put the reference in the format.
|
# When no service is specified, we don't put the reference in the format.
|
||||||
if service is None:
|
if service is None:
|
||||||
fmt = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
self.c_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
||||||
else:
|
else:
|
||||||
fmt = "%%(asctime)s - %%(name)s - %(service)s - %%(levelname)s - %%(message)s" % {'service': service}
|
self.c_format = "%%(asctime)s - %%(name)s - %(service)s - %%(levelname)s - %%(message)s" % {'service': service}
|
||||||
|
|
||||||
# Computes the file handler name using service name.
|
self.create_formatter()
|
||||||
file_handler_path = os.path.join(LDIRPATH, "%s.log" % (loggerName,))
|
self.apply_file_handler(loggerName)
|
||||||
|
if debug:
|
||||||
|
self.apply_stream_handler()
|
||||||
|
|
||||||
# Creates FileHandler
|
def get_file_handler_path(self):
|
||||||
self.fh = logging.FileHandler(file_handler_path)
|
"""Returns the file handler path"""
|
||||||
|
if self.__file_handler_path is None:
|
||||||
|
return ''
|
||||||
|
return self.__file_handler_path
|
||||||
|
|
||||||
# Catches appropriate level in logging.
|
def create_formatter(self):
|
||||||
self.fhlevel = getattr(logging, level.upper(), logging.INFO)
|
"""Creates a formatter based on CFormatter class.
|
||||||
self.fh.setLevel(self.fhlevel)
|
It uses self.format as a source."""
|
||||||
|
|
||||||
|
if self.c_formatter is not None:
|
||||||
|
return
|
||||||
|
|
||||||
# Creates formatter
|
# Creates formatter
|
||||||
self.formatter = CFormatter(fmt, "%Y-%m-%dT%H:%M:%S.%f%z")
|
self.c_formatter = CFormatter(self.c_format, "%Y-%m-%dT%H:%M:%S.%f%z")
|
||||||
|
|
||||||
|
def apply_stream_handler(self):
|
||||||
|
"""Creates a streamhandler that prints to stdout.
|
||||||
|
Its level is debug"""
|
||||||
|
self.c_sh = logging.StreamHandler()
|
||||||
|
self.c_shlevel = logging.DEBUG
|
||||||
|
self.c_sh.setLevel(self.c_shlevel)
|
||||||
|
self.c_sh.setFormatter(self.c_formatter)
|
||||||
|
self.addHandler(self.c_sh)
|
||||||
|
|
||||||
|
def apply_file_handler(self, loggerName):
|
||||||
|
"""Creates a file handler which level is given by self.c_level"""
|
||||||
|
if self.c_file_handler is not None:
|
||||||
|
return
|
||||||
|
|
||||||
|
# Computes the file handler name using service name.
|
||||||
|
self.__file_handler_path = os.path.join(LDIRPATH, "%s.log" % (loggerName,))
|
||||||
|
|
||||||
|
# Creates FileHandler
|
||||||
|
self.c_file_handler = logging.FileHandler(self.__file_handler_path)
|
||||||
|
|
||||||
|
# Catches appropriate level in logging.
|
||||||
|
self.c_file_handler_level = getattr(logging, self.c_level.upper(), logging.INFO)
|
||||||
|
self.c_file_handler.setLevel(self.c_file_handler_level)
|
||||||
|
|
||||||
# Adds formatter to FileHandler
|
# Adds formatter to FileHandler
|
||||||
self.fh.setFormatter(self.formatter)
|
self.c_file_handler.setFormatter(self.c_formatter)
|
||||||
|
|
||||||
if debug:
|
|
||||||
self.sh = logging.StreamHandler()
|
|
||||||
self.shlevel = logging.DEBUG
|
|
||||||
self.sh.setLevel(self.shlevel)
|
|
||||||
self.sh.setFormatter(self.formatter)
|
|
||||||
self.addHandler(self.sh)
|
|
||||||
|
|
||||||
# Adds FileHandler to Handlers
|
# Adds FileHandler to Handlers
|
||||||
self.addHandler(self.fh)
|
self.addHandler(self.c_file_handler)
|
||||||
|
|
||||||
class CFormatter(logging.Formatter):
|
class CFormatter(logging.Formatter):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue