Skip to content

Commit

Permalink
natlinkutilsbj now has a mechansim for logging and for subclasses to …
Browse files Browse the repository at this point in the history
…create their own logger.
  • Loading branch information
dougransom committed Mar 3, 2024
1 parent 6993843 commit 1577ce3
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 18 deletions.
2 changes: 1 addition & 1 deletion src/unimacro/UnimacroGrammars/_folders.py
Original file line number Diff line number Diff line change
Expand Up @@ -2075,7 +2075,7 @@ def getValidDirectory(self, f, remote):
if os.path.isdir(tryF):
return tryF
fparts.pop(0)
self.info('_folders, no valid remote folder found for %s and remote: %s', (f, remote))
self.info('_folders, no valid remote folder found for %s and remote: %s', f, remote)
return ''

def getValidFile(self, f, remote):
Expand Down
35 changes: 18 additions & 17 deletions src/unimacro/natlinkutilsbj.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
from pathlib import Path
import win32com
import logging

from logging import Logger
import natlink
from natlinkcore import loader
from natlinkcore import gramparser # for translation with GramScannerReverse
Expand Down Expand Up @@ -314,27 +314,28 @@ def loggerShortName(self) ->str:
return "unimacro"

def getLogger(self) -> logging.Logger:
print(f"Get Logger , name is {self.loggerName()}")
return logging.getLogger(self.loggerName())

#info,warning,error,exception,debug,log are forwarded the the appropriate logger.+


def info(self,msg,*args,**kwargs):
return self.getLogger().info(msg,*args,**kwargs)
def debug(self,msg,*args,**kwargs):
return self.getLogger().debug(msg,*args,**kwargs)
def warning(self,msg,*args,**kwargs):
return self.getLogger().warning(msg,*args,**kwargs)
def error(self,msg,*args,**kwargs):
return self.getLogger().error(msg,*args,**kwargs)
def exception(self,msg,*args,**kwargs):
return self.getLogger().error(msg,*args,**kwargs)
def log(self,level,msg,*args,**kwargs):
return self.getLogger().error(level,msg,*args,**kwargs)



#avoid copy and pasting methods that delegate to getLoger()
def wrapped_log(method):
"""Delegates to {method} of a Logger object from self.getLogger()"""
def fn(self,*args,**kwargs):
logger=self.getLogger()
try:
return method(logger,*args,**kwargs)
except Exception as e:
print("Failure attempting to call {method} on {logger}, \nargs {args} \nkwargs {kwargs}\nException:\n{e}")
return False

return fn

#add methods to delegate calls to logger, so we wave info, warn, etc.
wrapped_logger=[Logger.info,Logger.setLevel,Logger.debug,Logger.warning,Logger.error,Logger.exception,Logger.critical,Logger.log]
for n in wrapped_logger:
locals()[n.__name__]=wrapped_log(n)


def getExclusiveGrammars(self):
Expand Down

0 comments on commit 1577ce3

Please sign in to comment.