This is a python logging module with abstracted functionality to pull the current class name, current function and current source file easily, with one line of code:
import imp import inspect import sys class Logger: def __init__(self): self.filename = "" self.function_name = "" self.class_name = "" # End Function def log_current_status(self, object_instance): self.filename = inspect.stack()[1][1] self.function_name = inspect.stack()[1][3] self.class_name = object_instance.__class__.__name__ print "LOG: " + self.filename + " => " + self.class_name + " => " + self.function_name # End Function # End Class ######################################################################### class Class_A: def __init__(self, logger): self.logger = logger print "\nInitialise A" self.logger.log_current_status(self) # End Function def function_1(self): self.logger = logger print "\nIn function 1 in Class_A" self.logger.log_current_status(self) # End Function def function_2(self): self.logger = logger print "\nIn function 2 in Class_A" self.logger.log_current_status(self) # End Function # End Class ######################################################################### class Class_B: def __init__(self, logger): self.logger = logger print "\nInitialise B" self.logger.log_current_status(self) # End Function def function_1(self): self.logger = logger print "\nIn function 1 in Class_B" self.logger.log_current_status(self) # End Function def function_2(self): self.logger = logger print "\nIn function 2 in Class_B" self.logger.log_current_status(self) # End Function # End Class ######################################################################### logger = Logger() ### class_a_instance = Class_A(logger) class_a_instance.function_1() class_a_instance.function_2() ### class_b_instance = Class_B(logger) class_b_instance.function_1() class_b_instance.function_2()