Package org.apache.logging.log4j.util
Class StackLocatorUtil
java.lang.Object
org.apache.logging.log4j.util.StackLocatorUtil
Consider this class private. Provides various methods to determine the caller class.
Background
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic StackTraceElementcalcLocation(String fqcnOfLogger) static Class<?> getCallerClass(int depth) static Class<?> getCallerClass(Class<?> anchor) static Class<?> getCallerClass(Class<?> sentinelClass, Predicate<Class<?>> callerPredicate) Search for a calling class.static Class<?> getCallerClass(String fqcn) Equivalent togetCallerClass(String, String)with an emptypkg.static Class<?> getCallerClass(String fqcn, String pkg) Search for a calling class.static ClassLoadergetCallerClassLoader(int depth) Gets the ClassLoader of the class that called this method at the location up the call stack by the given stack frame depth.static StackTraceElementgetStackTraceElement(int depth)
-
Field Details
-
stackLocator
-
errorLogged
private static volatile boolean errorLogged
-
-
Constructor Details
-
StackLocatorUtil
private StackLocatorUtil()
-
-
Method Details
-
getCallerClass
-
getStackTraceElement
-
getCallerClass
Equivalent togetCallerClass(String, String)with an emptypkg. -
getCallerClass
Search for a calling class.- Parameters:
fqcn- Root class name whose caller to search for.pkg- Package name prefix that must be matched after thefqcnhas been found.- Returns:
- The caller class that was matched, or null if one could not be located.
-
getCallerClassLoader
Gets the ClassLoader of the class that called this method at the location up the call stack by the given stack frame depth.This method returns
nullif:sun.reflect.Reflection.getCallerClass(int)is not present.- An exception is caught calling
sun.reflect.Reflection.getCallerClass(int). - Some Class implementations may use null to represent the bootstrap class loader.
- Parameters:
depth- The stack frame count to walk.- Returns:
- A class or null.
- Throws:
IndexOutOfBoundsException- if depth is negative.
-
getCallerClass
Search for a calling class.- Parameters:
sentinelClass- Sentinel class at which to begin searchingcallerPredicate- Predicate checked after the sentinelClass is found- Returns:
- the first matching class after
sentinelClassis found.
-
getCallerClass
-
getCurrentStackTrace
-
calcLocation
-