From d3faa8ee8508802cc10dfc5f70f43d8fba394c69 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Wed, 30 Oct 2019 15:46:26 +0100 Subject: [PATCH] log.py: Add utilities, better list-support in slog_m() - Add functions: append_to_prefix(), remove_from_prefix() set_filename_length() - Make slog_m() log one list item per line - Add console_color_chars(prio) Signed-off-by: Jan Lindemann --- tools/python/jwutils/log.py | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/tools/python/jwutils/log.py b/tools/python/jwutils/log.py index 3fb8ce0..fe1cf23 100644 --- a/tools/python/jwutils/log.py +++ b/tools/python/jwutils/log.py @@ -45,6 +45,8 @@ f_color = 'color' f_default = [ f_position, f_stderr, f_prio, f_color ] _flags = set(f_default) +_log_prefix = '' +_file_name_len = 20 _short_prio_str = { EMERG : '', @@ -81,6 +83,9 @@ def slog_m(prio, *args, **kwargs): # export if len(args): margs = '' for a in args: + if isinstance(a, list): + margs += '\n'.join([str(elem) for elem in a]) + continue margs += ' ' + str(a) caller = get_caller_pos(1) for line in margs[1:].split('\n'): @@ -103,11 +108,13 @@ def slog(prio, *args, **kwargs): # export name, line = kwargs['caller'] else: name, line = get_caller_pos(1) - msg += misc.pad(name, 20) + '[' + misc.pad(str(line), 4, True) + ']' + msg += misc.pad(name, _file_name_len) + '[' + misc.pad(str(line), 4, True) + ']' if f_color in _flags: color_on, color_off = _prio_colors[prio] + msg += _log_prefix + if len(args): margs = '' for a in args: @@ -190,3 +197,26 @@ def set_flags(flags_): # export #date #pid #highlight_first_error + +def append_to_prefix(prefix): # export + global _log_prefix + r = _log_prefix + if prefix: + _log_prefix += prefix + return r + +def remove_from_prefix(count): # export + global _log_prefix + r = _log_prefix + _log_prefix = _log_prefix[:-count] + return r + +def set_filename_length(l): # export + global _file_name_len + r = _file_name_len + if l: + _file_name_len = l + return r + +def console_color_chars(prio): # export + return _prio_colors[prio]