Introduce custom logger
Implement logger that internally checks if log level is enabled. Thus, unnecessary log message computation costs are avoid, when logging is disabled and logging code can be cut in half. Related #2663
This commit is contained in:
parent
810cda917a
commit
33c057feff
|
@ -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)
|
|
@ -36,7 +36,9 @@ from solaar import configuration
|
||||||
from solaar import dbus
|
from solaar import dbus
|
||||||
from solaar import listener
|
from solaar import listener
|
||||||
from solaar import ui
|
from solaar import ui
|
||||||
|
from solaar.custom_logger import CustomLogger
|
||||||
|
|
||||||
|
logging.setLoggerClass(CustomLogger)
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue