I am looking for a \"self\" reference to the current class in JAVA in a static context manner like in PHP Scope Resolution Operator?
Solution: Break out of scope? BEWARE
I don't think there are any alternatives that are significantly different to the two in your question.
You could create a helper method like this:
public static String getCallingClassname() {
return new RuntimeException().getStackTrace()[1].getClassName();
}
and then
static Logger LOG = LoggerFactory.getLogger(Helper.getCallingClassname());
but that's as expensive as the original version. (FWIW - 300 times as slow is probably not a major concern, unless you have thousands of these loggers. Each of these statics is initialized just once ...)
My personal preference is for the "old fashioned" way of doing it.