On 07/22/2013 11:22 AM, Paul Benedict wrote:
I find this issue tangentially related to some open source logging
libraries. Some create a stack trace just so they can get the name of the
calling Class instance.

Example:
Logger log = Logger.createLogger(); // for the current class

Are there any thoughts to directly exposing
sun.reflect.Reflection.getCallerClass() as a public API?

This is somewhat complicated by two factors: the sea of loggers-which-log-to-loggers, and the usage of the data acquired. The common practice is for the "outermost" layer to pass in its own class name, so that the "innermost" layer can search back on the call stack to find the last entry before the "outermost" layer, and use this entry to get not only the class (and method) name, but also the file name and line number from the stack trace entry.
--
- DML

Reply via email to