summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcello Stanisci <stanisci.m@gmail.com>2019-02-06 17:34:30 +0100
committerMarcello Stanisci <stanisci.m@gmail.com>2019-02-06 17:34:30 +0100
commit6b3c34d553846a358df783b8cb06c84cc2b8cc88 (patch)
tree7bbd2696549cf7f37d4736dcdbbe6404c2ff4faf
parent21c69713e423c41ab071d6926801fee6631c87d4 (diff)
downloadtaler-util-6b3c34d553846a358df783b8cb06c84cc2b8cc88.tar.gz
taler-util-6b3c34d553846a358df783b8cb06c84cc2b8cc88.tar.bz2
taler-util-6b3c34d553846a358df783b8cb06c84cc2b8cc88.zip
4453, use regex.
-rwxr-xr-xpython/log/gnunet_log.py37
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)