From d352fa50095102ab1f81adb720e905967fd38b3d Mon Sep 17 00:00:00 2001 From: Joseph Brill <48932340+jcbrill@users.noreply.github.com> Date: Wed, 15 Mar 2023 09:19:19 -0400 Subject: Refactor MSCommon/common.py logging filter class due to SConfTests module reset when debug logging is enabled. --- SCons/Tool/MSCommon/common.py | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/SCons/Tool/MSCommon/common.py b/SCons/Tool/MSCommon/common.py index df8e6c8..dca43bf 100644 --- a/SCons/Tool/MSCommon/common.py +++ b/SCons/Tool/MSCommon/common.py @@ -46,30 +46,31 @@ LOGFILE = os.environ.get('SCONS_MSCOMMON_DEBUG') if LOGFILE: import logging - modulelist = ( - # root module and parent/root module - 'MSCommon', 'Tool', - # python library and below: correct iff scons does not have a lib folder - 'lib', - # scons modules - 'SCons', 'test', 'scons' - ) + class _Debug_Filter(logging.Filter): + # custom filter for module relative filename - def get_relative_filename(filename, module_list): - if not filename: + modulelist = ( + # root module and parent/root module + 'MSCommon', 'Tool', + # python library and below: correct iff scons does not have a lib folder + 'lib', + # scons modules + 'SCons', 'test', 'scons' + ) + + def get_relative_filename(self, filename, module_list): + if not filename: + return filename + for module in module_list: + try: + ind = filename.rindex(module) + return filename[ind:] + except ValueError: + pass return filename - for module in module_list: - try: - ind = filename.rindex(module) - return filename[ind:] - except ValueError: - pass - return filename - class _Debug_Filter(logging.Filter): - # custom filter for module relative filename def filter(self, record): - relfilename = get_relative_filename(record.pathname, modulelist) + relfilename = self.get_relative_filename(record.pathname, self.modulelist) relfilename = relfilename.replace('\\', '/') record.relfilename = relfilename return True -- cgit v0.12