Just want to begin by saying I'm eternally grateful for the release of this module as a standalone package. This is a super clean general purpose implementation of JAB.
That being said, I'd really appreciate it if the calls to the root logger could be removed in a future release. At the moment I have to do something pretty hacky to stop the JABWrapper module from adding unwanted handlers and formatters to the root logger.
def monkey_patch_logging():
"""Initial Load of JABWrapper here to prevent it from using the root logger"""
class MetaReturnsCLS(type):
def __getattr__(cls, name):
return lambda *args, **kwargs: cls
class LoggingFacade(metaclass=MetaReturnsCLS):
jab_logger = logging.getLogger("JABWrapper")
debug = jab_logger.debug
info = jab_logger.info
DEBUG = logging.DEBUG
INFO = logging.INFO
sys.modules[logging.__name__] = LoggingFacade
import JABWrapper
from JABWrapper.jab_wrapper import JavaAccessBridgeWrapper
from JABWrapper.jab_types import JavaObject
sys.modules[logging.__name__] = logging
This is the only way I was able to both keep my logger hierarchy clean and prevent jab_wrapper.log files showing up in my project directory.
It'd be really simple to fix this issue, it'd only require that the method calls to the logging module itself be substituted with calls to a package local logger. Then, an importing user like myself could chose to enable/disable the logging therein.
import logging
# not this
logging.basicConfig(level=logging.DEBUG, handlers=[logging_file_handler, logging_stream_handler])
logging.debug("my debug message")
# do this
logger = logging.getLogger("JABWrapper")
logger.setLevel(logging.DEBUG)
logger.addHandler(logging_file_handler)
logger.addHandler(logging_stream_handler)
logger.debug("my debug message")
Is this something you'd be willing accept pull requests on?
Hi there,
Just want to begin by saying I'm eternally grateful for the release of this module as a standalone package. This is a super clean general purpose implementation of JAB.
That being said, I'd really appreciate it if the calls to the root logger could be removed in a future release. At the moment I have to do something pretty hacky to stop the JABWrapper module from adding unwanted handlers and formatters to the root logger.
This is the only way I was able to both keep my logger hierarchy clean and prevent
jab_wrapper.log
files showing up in my project directory.It'd be really simple to fix this issue, it'd only require that the method calls to the logging module itself be substituted with calls to a package local logger. Then, an importing user like myself could chose to enable/disable the logging therein.
Is this something you'd be willing accept pull requests on?
Thanks!