Merge pull request #1147 from DavidMStraub/inspect_stack
This commit is contained in:
commit
de866a7edc
@ -157,15 +157,16 @@ def wrapper(method):
|
|||||||
This 'wrapped' method logs the original function that was called, and
|
This 'wrapped' method logs the original function that was called, and
|
||||||
where it was called from.
|
where it was called from.
|
||||||
"""
|
"""
|
||||||
class_name = args[0].__class__.__name__
|
if __debug__ and LOG.isEnabledFor(logging.DEBUG):
|
||||||
func_name = method.__name__
|
class_name = args[0].__class__.__name__
|
||||||
frame = inspect.currentframe()
|
func_name = method.__name__
|
||||||
c_frame = frame.f_back
|
frame = inspect.currentframe()
|
||||||
c_code = c_frame.f_code
|
c_frame = frame.f_back
|
||||||
LOG.debug('calling %s.%s()... from file %s, line %s in %s',
|
c_code = c_frame.f_code
|
||||||
class_name, func_name, c_code.co_filename, c_frame.f_lineno,
|
LOG.debug('calling %s.%s()... from file %s, line %s in %s',
|
||||||
c_code.co_name)
|
class_name, func_name, c_code.co_filename,
|
||||||
return method(*args, **keywargs)
|
c_frame.f_lineno, c_code.co_name)
|
||||||
|
return method(*args, **keywargs)
|
||||||
return wrapped
|
return wrapped
|
||||||
|
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ class DbTxn(defaultdict):
|
|||||||
self.db.transaction_abort(self)
|
self.db.transaction_abort(self)
|
||||||
|
|
||||||
elapsed_time = time.time() - self.start_time
|
elapsed_time = time.time() - self.start_time
|
||||||
if __debug__:
|
if __debug__ and _LOG.isEnabledFor(logging.DEBUG):
|
||||||
frame = inspect.currentframe()
|
frame = inspect.currentframe()
|
||||||
c_frame = frame.f_back
|
c_frame = frame.f_back
|
||||||
c_code = c_frame.f_code
|
c_code = c_frame.f_code
|
||||||
@ -122,7 +122,7 @@ class DbTxn(defaultdict):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
# Conditional on __debug__ because all that frame stuff may be slow
|
# 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]
|
caller_frame = inspect.stack()[1]
|
||||||
# If the call comes from gramps.gen.db.generic.DbGenericTxn.__init__
|
# 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
|
# then it is just a dummy redirect, so we need to go back another
|
||||||
|
@ -71,15 +71,15 @@ def make_database(plugin_id):
|
|||||||
if mod:
|
if mod:
|
||||||
database = getattr(mod, pdata.databaseclass)
|
database = getattr(mod, pdata.databaseclass)
|
||||||
db = database()
|
db = database()
|
||||||
import inspect
|
if __debug__ and _LOG.isEnabledFor(logging.DEBUG):
|
||||||
frame = inspect.currentframe()
|
import inspect
|
||||||
c_frame = frame.f_back
|
frame = inspect.currentframe()
|
||||||
c_code = c_frame.f_code
|
c_frame = frame.f_back
|
||||||
_LOG.debug("Database class instance created Class:%s instance:%s. "
|
c_code = c_frame.f_code
|
||||||
"Called from File %s, line %s, in %s",
|
_LOG.debug("Database class instance created Class:%s instance:%s. "
|
||||||
db.__class__.__name__, hex(id(db)), c_code.co_filename,
|
"Called from File %s, line %s, in %s",
|
||||||
c_frame.f_lineno, c_code.co_name)
|
db.__class__.__name__, hex(id(db)), c_code.co_filename,
|
||||||
|
c_frame.f_lineno, c_code.co_name)
|
||||||
return db
|
return db
|
||||||
else:
|
else:
|
||||||
raise Exception("can't load database backend: '%s'" % plugin_id)
|
raise Exception("can't load database backend: '%s'" % plugin_id)
|
||||||
|
@ -85,14 +85,15 @@ class DbState(Callback):
|
|||||||
This replaces tests on DbState.open, DbState.db, DbState.db.is_open()
|
This replaces tests on DbState.open, DbState.db, DbState.db.is_open()
|
||||||
and DbState.db.db_is_open all of which are deprecated.
|
and DbState.db.db_is_open all of which are deprecated.
|
||||||
"""
|
"""
|
||||||
class_name = self.__class__.__name__
|
if __debug__ and _LOG.isEnabledFor(logging.DEBUG):
|
||||||
func_name = "is_open"
|
class_name = self.__class__.__name__
|
||||||
frame = inspect.currentframe()
|
func_name = "is_open"
|
||||||
c_frame = frame.f_back
|
frame = inspect.currentframe()
|
||||||
c_code = c_frame.f_code
|
c_frame = frame.f_back
|
||||||
_LOG.debug('calling %s.%s()... from file %s, line %s in %s',
|
c_code = c_frame.f_code
|
||||||
class_name, func_name, c_code.co_filename, c_frame.f_lineno,
|
_LOG.debug('calling %s.%s()... from file %s, line %s in %s',
|
||||||
c_code.co_name)
|
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()
|
return (self.db is not None) and self.db.is_open()
|
||||||
|
|
||||||
def change_database(self, database):
|
def change_database(self, database):
|
||||||
|
Loading…
Reference in New Issue
Block a user