From d9b5efbc7dc99f487f329e563f36e21da5f97496 Mon Sep 17 00:00:00 2001 From: David Maisonave <47364845+David-Maisonave@users.noreply.github.com> Date: Sun, 11 Aug 2024 13:59:57 -0400 Subject: [PATCH] Added LogOnce function --- plugins/FileMonitor/StashPluginHelper.py | 19 ++++++++++++++++--- plugins/FileMonitor/filemonitor.py | 4 ++-- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/plugins/FileMonitor/StashPluginHelper.py b/plugins/FileMonitor/StashPluginHelper.py index de13a66..08c9058 100644 --- a/plugins/FileMonitor/StashPluginHelper.py +++ b/plugins/FileMonitor/StashPluginHelper.py @@ -215,9 +215,10 @@ class StashPluginHelper: if (printTo & self.LOG_TO_STDERR) and (logLevel != logging.DEBUG or self.DEBUG_TRACING or logAlways): print(f"StdErr: {LN_Str} {levelStr}{logMsg}", file=sys.stderr) - def Trace(self, logMsg = "", printTo = 0, logAlways = False): + def Trace(self, logMsg = "", printTo = 0, logAlways = False, lineNo = -1): if printTo == 0: printTo = self.LOG_TO_FILE - lineNo = inspect.currentframe().f_back.f_lineno + if lineNo == -1: + lineNo = lineNo = inspect.currentframe().f_back.f_lineno logLev = logging.INFO if logAlways else logging.DEBUG if self.DEBUG_TRACING or logAlways: if logMsg == "": @@ -236,7 +237,19 @@ class StashPluginHelper: self.traceOncePreviousHits.append(FuncAndLineNo) if logMsg == "": logMsg = f"Line number {lineNo}..." - self.Log(logMsg, printTo, logLev, lineNo, self.LEV_TRACE, logAlways) + self.Log(logMsg, printTo, logLev, lineNo) + + # Log INFO on first call, then do Trace on remaining calls. + def LogOnce(self, logMsg = "", printTo = 0, logAlways = False, traceOnRemainingCalls = True): + if printTo == 0: printTo = self.LOG_TO_FILE + lineNo = inspect.currentframe().f_back.f_lineno + FuncAndLineNo = f"{inspect.currentframe().f_back.f_code.co_name}:{lineNo}" + if FuncAndLineNo in self.traceOncePreviousHits: + if traceOnRemainingCalls: + self.Trace(logMsg, printTo, logAlways, lineNo) + else: + self.traceOncePreviousHits.append(FuncAndLineNo) + self.Log(logMsg, printTo, logging.INFO, lineNo) def Warn(self, logMsg, printTo = 0): if printTo == 0: printTo = self.log_to_wrn_set diff --git a/plugins/FileMonitor/filemonitor.py b/plugins/FileMonitor/filemonitor.py index 31bec89..4748097 100644 --- a/plugins/FileMonitor/filemonitor.py +++ b/plugins/FileMonitor/filemonitor.py @@ -256,7 +256,7 @@ def start_library_monitor(): # Iterate through stashPaths for path in stashPaths: observer.schedule(event_handler, path, recursive=RECURSIVE) - plugin.Trace(f"Observing {path}") + plugin.Log(f"Observing {path}") observer.schedule(event_handler, SPECIAL_FILE_DIR, recursive=RECURSIVE) plugin.Trace(f"Observing FileMonitor path {SPECIAL_FILE_DIR}") observer.start() @@ -281,7 +281,7 @@ def start_library_monitor(): break if plugin.pluginSettings['turnOnScheduler']: checkSchedulePending() - plugin.Trace("Wait start") + plugin.LogOnce("Wait start") signal.wait(timeout=SIGNAL_TIMEOUT) plugin.Trace("Wait end") shouldUpdate = False