I have a logging function that takes the calling object as a parameter. I then call getClass().getSimpleName() on it so that I can easily get the class name to add to my log entry for easy reference. The problem is that when I call my log function from a static method, I can't pass in "this". My log function looks something like this:
public static void log(Object o, String msg){
do_log(o.getClass().getSimpleName()+" "+msg);
}
public void do_something(){
log(this, "Some message");
}
But let's say I want to log from a static function:
public static void do_something_static(){
log(this, "Some message from static");
}
Obviously do_something_static() won't work because it is static and "this" is not in a static context. How can I get around this? And can I do it without using reflection (since I understand there is a lot of overhead involved and it might affect performance since I log a LOT of data)
I know I can probably hard-code the current class into the call somehow, but I'm sure that when I move the function to another class, I will forget to update the hard-coded reference and it will no longer be correct.
Thanks!