diff --git a/lib/solaar/custom_logger.py b/lib/solaar/custom_logger.py new file mode 100644 index 000000000..a4337bf17 --- /dev/null +++ b/lib/solaar/custom_logger.py @@ -0,0 +1,28 @@ +import logging + + +class CustomLogger(logging.Logger): + """Logger, that avoids unnecessary string computations. + + Does not compute messages for disabled log levels. + """ + + def debug(self, msg, *args, **kwargs): + if self.isEnabledFor(logging.DEBUG): + super().debug(msg, *args, **kwargs) + + def info(self, msg, *args, **kwargs): + if self.isEnabledFor(logging.INFO): + super().info(msg, *args, **kwargs) + + def warning(self, msg, *args, **kwargs): + if self.isEnabledFor(logging.WARNING): + super().warning(msg, *args, **kwargs) + + def error(self, msg, *args, **kwargs): + if self.isEnabledFor(logging.ERROR): + super().error(msg, *args, **kwargs) + + def critical(self, msg, *args, **kwargs): + if self.isEnabledFor(logging.CRITICAL): + super().critical(msg, *args, **kwargs) diff --git a/lib/solaar/gtk.py b/lib/solaar/gtk.py index 65ff13b9e..a5a57c751 100755 --- a/lib/solaar/gtk.py +++ b/lib/solaar/gtk.py @@ -36,7 +36,9 @@ from solaar import dbus from solaar import listener from solaar import ui +from solaar.custom_logger import CustomLogger +logging.setLoggerClass(CustomLogger) logger = logging.getLogger(__name__)