From b5a181874a8325f9ec08c49d3f2b1e403ad40903 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 3 Apr 2018 12:55:17 +0200 Subject: [PATCH 1/5] #61 resolve the debug mode issue --- basescript/basescript.py | 2 +- basescript/log.py | 5 ++++- setup.py | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/basescript/basescript.py b/basescript/basescript.py index 3ad8a2b..0c71b3c 100644 --- a/basescript/basescript.py +++ b/basescript/basescript.py @@ -37,7 +37,7 @@ def __init__(self, args=None): if self.args.metric_grouping_interval is None: self.args.metric_grouping_interval = 0 - else: + if not self.args.log_level: self.args.log_level = 'info' self.args.metric_grouping_interval = self.METRIC_GROUPING_INTERVAL diff --git a/basescript/log.py b/basescript/log.py index ecc203b..e9d5998 100644 --- a/basescript/log.py +++ b/basescript/log.py @@ -439,9 +439,12 @@ def init_logger( fpath=None, pre_hooks=None, post_hooks=None, - metric_grouping_interval=METRIC_GROUPING_INTERVAL + metric_grouping_interval=None ): + if metric_grouping_interval is None and not level == 'debug': + metric_grouping_interval = METRIC_GROUPING_INTERVAL + global LOG if LOG is not None: return LOG diff --git a/setup.py b/setup.py index 09df9cb..bad528f 100644 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ def get_long_description(): long_description = get_long_description() -version = '0.2.4' +version = '0.2.5' setup( name="basescript", version=version, From d003d98f57d2ead4d8e261f00e66e28e5b2dcc8a Mon Sep 17 00:00:00 2001 From: root Date: Wed, 4 Apr 2018 12:41:35 +0200 Subject: [PATCH 2/5] #61 resolve the debug mode issue --- basescript/basescript.py | 3 +++ basescript/log.py | 4 ---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/basescript/basescript.py b/basescript/basescript.py index 0c71b3c..e2fbe91 100644 --- a/basescript/basescript.py +++ b/basescript/basescript.py @@ -41,6 +41,9 @@ def __init__(self, args=None): self.args.log_level = 'info' self.args.metric_grouping_interval = self.METRIC_GROUPING_INTERVAL + if self.args.metric_grouping_interval is None: + self.args.metric_grouping_interval = self.METRIC_GROUPING_INTERVAL + self.log = init_logger( fmt=self.args.log_format, quiet=self.args.quiet, diff --git a/basescript/log.py b/basescript/log.py index e9d5998..994d004 100644 --- a/basescript/log.py +++ b/basescript/log.py @@ -16,7 +16,6 @@ _GLOBAL_LOG_CONFIGURED = False HOSTNAME = socket.gethostname() -METRIC_GROUPING_INTERVAL = 1 # one second METRICS_STATE = {} METRICS_STATE_LOCK = Lock() @@ -442,9 +441,6 @@ def init_logger( metric_grouping_interval=None ): - if metric_grouping_interval is None and not level == 'debug': - metric_grouping_interval = METRIC_GROUPING_INTERVAL - global LOG if LOG is not None: return LOG From 2333ea887fd9457d1d09e53188e31b8cf3aa7c2f Mon Sep 17 00:00:00 2001 From: root Date: Tue, 10 Apr 2018 14:50:16 +0200 Subject: [PATCH 3/5] #65 compatible with python3 --- basescript/basescript.py | 1 + 1 file changed, 1 insertion(+) diff --git a/basescript/basescript.py b/basescript/basescript.py index e2fbe91..4fc090b 100644 --- a/basescript/basescript.py +++ b/basescript/basescript.py @@ -18,6 +18,7 @@ def __init__(self, args=None): self.subcommands = self.parser.add_subparsers(title='commands') self.subcommands.dest = 'commands' + self.subcommands.required = True self.define_subcommands(self.subcommands) self.subcommand_run = self.subcommands.add_parser('run') self.subcommand_run.set_defaults(func=self.run) From b0aba7aa5ce6478895ee5b2dcc286f317ef14afb Mon Sep 17 00:00:00 2001 From: root Date: Wed, 11 Apr 2018 11:37:53 +0200 Subject: [PATCH 4/5] #67 pretty mode json to logfile --- basescript/log.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/basescript/log.py b/basescript/log.py index 994d004..37eb34e 100644 --- a/basescript/log.py +++ b/basescript/log.py @@ -241,11 +241,9 @@ def define_log_renderer(fmt, fpath, quiet): # it must accept a logger, method_name and event_dict (just like processors) # but must return the rendered string, not a dictionary. # TODO tty logic - if fmt == "json": - return structlog.processors.JSONRenderer() - if fmt == "pretty": - return structlog.dev.ConsoleRenderer() + if fmt: + return structlog.processors.JSONRenderer() if fpath is not None: return structlog.processors.JSONRenderer() From ee4c14de3dd21a7579104ffb48c7e20cf58af370 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 11 Apr 2018 12:26:17 +0200 Subject: [PATCH 5/5] #69 fix the metric grouping num value --- basescript/log.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/basescript/log.py b/basescript/log.py index 37eb34e..0b3a806 100644 --- a/basescript/log.py +++ b/basescript/log.py @@ -323,9 +323,10 @@ def metrics_grouping_processor(logger_class, log_method, event): for fk, fv in fields: favg = sfields.get(fk, 0.0) favg = (favg * num + fv) / (num + 1) #moving average - state['num'] += 1 sfields[fk] = favg + state['num'] += 1 + METRICS_STATE[key] = state finally: METRICS_STATE_LOCK.release()