diff options
author | Marcello Stanisci <stanisci.m@gmail.com> | 2019-02-06 17:34:30 +0100 |
---|---|---|
committer | Marcello Stanisci <stanisci.m@gmail.com> | 2019-02-06 17:34:30 +0100 |
commit | 6b3c34d553846a358df783b8cb06c84cc2b8cc88 (patch) | |
tree | 7bbd2696549cf7f37d4736dcdbbe6404c2ff4faf | |
parent | 21c69713e423c41ab071d6926801fee6631c87d4 (diff) | |
download | taler-util-6b3c34d553846a358df783b8cb06c84cc2b8cc88.tar.gz taler-util-6b3c34d553846a358df783b8cb06c84cc2b8cc88.tar.bz2 taler-util-6b3c34d553846a358df783b8cb06c84cc2b8cc88.zip |
4453, use regex.
-rwxr-xr-x | python/log/gnunet_log.py | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/python/log/gnunet_log.py b/python/log/gnunet_log.py index a39d92a..1f619ff 100755 --- a/python/log/gnunet_log.py +++ b/python/log/gnunet_log.py @@ -3,14 +3,16 @@ # GNUNET_FORCE_LOG format [component];[file];[function];[from line [to line]];loglevel import os +import re import logging import datetime class LogDefinition: - def __init__(self, component, forced, loglevel): - - self.component = component + def __init__(self, component, filename, function, loglevel, forced): self.forced = forced + self.component = ".*" if "" == component else component + self.filename = ".*" if "" == filename else filename + self.function = ".*" if "" == function else function # string here, comes from env after all. self.loglevel = loglevel @@ -31,6 +33,12 @@ class GnunetLoglevel: class GnunetLogger: + COMPONENT_IDX = 0 + FILENAME_IDX = 1 + FUNCTION_IDX = 2 + # From line [-to line] missing. + LEVEL_IDX = 4 + def __init__(self, component): self.logger = logging.getLogger(component) self.ERROR = GnunetLoglevel("ERROR", logging.ERROR, self.logger.error) @@ -40,7 +48,6 @@ class GnunetLogger: self.component = component self.loglevel = None - self.filename = None # Setting the *logging* loglevel in order to have the # chance of changing the *logger* (object) loglevel along the @@ -65,13 +72,13 @@ class GnunetLogger: def parse_filename(self, filename): # implement {} and [] substitution. - self.filename = filename.replace("{}", self.component) - self.filename = self.filename.replace("[]", str(os.getpid())) + f = filename.replace("{}", self.component) + f = f.replace("[]", str(os.getpid())) now = datetime.datetime.now() - self.filename = self.filename.replace("%Y", now.strftime("%Y")) - self.filename = self.filename.replace("%m", now.strftime("%m")) - self.filename = self.filename.replace("%d", now.strftime("%d")) - return self.filename + f = f.replace("%Y", now.strftime("%Y")) + f = f.replace("%m", now.strftime("%m")) + f = f.replace("%d", now.strftime("%d")) + return f def string_to_loglevel(self, level): @@ -102,7 +109,7 @@ class GnunetLogger: if defi.forced or not self.loglevel: # Temporarily checking only the component name. # To be extended with all the others definition-parts. - if self.component == defi.component or "" == defi.component: + if re.match(defi.component, self.component): self.logger.setLevel( level=self.string_to_loglevel(defi.loglevel).getLevel()) message_loglevel.getFunction()(message) @@ -137,8 +144,10 @@ class GnunetLogger: print("warning: GNUNET_(FORCE_)LOG is malformed") return - definition = LogDefinition(gfl_split_split[0], - forced, - loglevel=gfl_split_split[4]) + definition = LogDefinition(gfl_split_split[GnunetLogger.COMPONENT_IDX], + gfl_split_split[GnunetLogger.FILENAME_IDX], + gfl_split_split[GnunetLogger.FUNCTION_IDX], + gfl_split_split[GnunetLogger.LEVEL_IDX], + forced) self.definitions.append(definition) |