diff --git a/gramps/gen/db/dummydb.py b/gramps/gen/db/dummydb.py index 79b702c58..34b1fb02b 100644 --- a/gramps/gen/db/dummydb.py +++ b/gramps/gen/db/dummydb.py @@ -157,15 +157,16 @@ def wrapper(method): This 'wrapped' method logs the original function that was called, and where it was called from. """ - class_name = args[0].__class__.__name__ - func_name = method.__name__ - frame = inspect.currentframe() - c_frame = frame.f_back - c_code = c_frame.f_code - LOG.debug('calling %s.%s()... from file %s, line %s in %s', - class_name, func_name, c_code.co_filename, c_frame.f_lineno, - c_code.co_name) - return method(*args, **keywargs) + if __debug__ and LOG.isEnabledFor(logging.DEBUG): + class_name = args[0].__class__.__name__ + func_name = method.__name__ + frame = inspect.currentframe() + c_frame = frame.f_back + c_code = c_frame.f_code + LOG.debug('calling %s.%s()... from file %s, line %s in %s', + class_name, func_name, c_code.co_filename, + c_frame.f_lineno, c_code.co_name) + return method(*args, **keywargs) return wrapped diff --git a/gramps/gen/db/txn.py b/gramps/gen/db/txn.py index fe07e5390..e467a2100 100644 --- a/gramps/gen/db/txn.py +++ b/gramps/gen/db/txn.py @@ -77,7 +77,7 @@ class DbTxn(defaultdict): self.db.transaction_abort(self) elapsed_time = time.time() - self.start_time - if __debug__: + if __debug__ and _LOG.isEnabledFor(logging.DEBUG): frame = inspect.currentframe() c_frame = frame.f_back c_code = c_frame.f_code @@ -122,7 +122,7 @@ class DbTxn(defaultdict): """ # Conditional on __debug__ because all that frame stuff may be slow - if __debug__: + if __debug__ and _LOG.isEnabledFor(logging.DEBUG): caller_frame = inspect.stack()[1] # If the call comes from gramps.gen.db.generic.DbGenericTxn.__init__ # then it is just a dummy redirect, so we need to go back another diff --git a/gramps/gen/db/utils.py b/gramps/gen/db/utils.py index ad9c87dc1..7df6c6ed8 100644 --- a/gramps/gen/db/utils.py +++ b/gramps/gen/db/utils.py @@ -71,15 +71,15 @@ def make_database(plugin_id): if mod: database = getattr(mod, pdata.databaseclass) db = database() - import inspect - frame = inspect.currentframe() - c_frame = frame.f_back - c_code = c_frame.f_code - _LOG.debug("Database class instance created Class:%s instance:%s. " - "Called from File %s, line %s, in %s", - db.__class__.__name__, hex(id(db)), c_code.co_filename, - c_frame.f_lineno, c_code.co_name) - + if __debug__ and _LOG.isEnabledFor(logging.DEBUG): + import inspect + frame = inspect.currentframe() + c_frame = frame.f_back + c_code = c_frame.f_code + _LOG.debug("Database class instance created Class:%s instance:%s. " + "Called from File %s, line %s, in %s", + db.__class__.__name__, hex(id(db)), c_code.co_filename, + c_frame.f_lineno, c_code.co_name) return db else: raise Exception("can't load database backend: '%s'" % plugin_id) diff --git a/gramps/gen/dbstate.py b/gramps/gen/dbstate.py index 6e748cafe..ffe831e0c 100644 --- a/gramps/gen/dbstate.py +++ b/gramps/gen/dbstate.py @@ -85,14 +85,15 @@ class DbState(Callback): This replaces tests on DbState.open, DbState.db, DbState.db.is_open() and DbState.db.db_is_open all of which are deprecated. """ - class_name = self.__class__.__name__ - func_name = "is_open" - frame = inspect.currentframe() - c_frame = frame.f_back - c_code = c_frame.f_code - _LOG.debug('calling %s.%s()... from file %s, line %s in %s', - class_name, func_name, c_code.co_filename, c_frame.f_lineno, - c_code.co_name) + if __debug__ and _LOG.isEnabledFor(logging.DEBUG): + class_name = self.__class__.__name__ + func_name = "is_open" + frame = inspect.currentframe() + c_frame = frame.f_back + c_code = c_frame.f_code + _LOG.debug('calling %s.%s()... from file %s, line %s in %s', + class_name, func_name, c_code.co_filename, + c_frame.f_lineno, c_code.co_name) return (self.db is not None) and self.db.is_open() def change_database(self, database):