Package org.apache.log.util
Class StackIntrospector
- java.lang.Object
-
- org.apache.log.util.StackIntrospector
-
public final class StackIntrospector extends java.lang.Object
A set of utilities to inspect current stack frame.- Version:
- $Id: StackIntrospector.java 30977 2004-07-30 03:57:54 -0500 (Fri, 30 Jul 2004) niclas $
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
StackIntrospector.CallStack
Hack to get the call stack as an array of classes.
-
Field Summary
Fields Modifier and Type Field Description private static StackIntrospector.CallStack
c_callStack
-
Constructor Summary
Constructors Modifier Constructor Description private
StackIntrospector()
Private constructor to block instantiation.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.Class
getCallerClass(java.lang.Class clazz)
Find the caller of the passed in Class.static java.lang.Class
getCallerClass(java.lang.Class clazz, int stackDepthOffset)
Find the caller of the passed in Class.static java.lang.String
getCallerMethod(java.lang.Class clazz)
Get the method path name for the method from which the LogEvent was created, this includes the path name and the source filename and line number if the source was compiled with debugging on.private static StackIntrospector.CallStack
getCallStack()
Create Hack SecurityManager to get CallStack.static java.lang.String
getRecentStack(java.lang.Class clazz, int entries)
Return the current call stack as a String, starting with the first call in the stack after a reference to theclazz
class, and then displayentries
entries.
-
-
-
Field Detail
-
c_callStack
private static StackIntrospector.CallStack c_callStack
-
-
Method Detail
-
getCallStack
private static StackIntrospector.CallStack getCallStack() throws java.lang.SecurityException
Create Hack SecurityManager to get CallStack.- Returns:
- the CallStack object
- Throws:
java.lang.SecurityException
- if an existing SecurityManager disallows construction of another SecurityManager
-
getCallerClass
public static final java.lang.Class getCallerClass(java.lang.Class clazz) throws java.lang.SecurityException
Find the caller of the passed in Class. May return null if caller not found on execution stack- Parameters:
clazz
- the Class to search for on stack to find caller of- Returns:
- the Class of object that called parrameter class
- Throws:
java.lang.SecurityException
- if an existing SecurityManager disallows construction of another SecurityManager and thus blocks method results
-
getCallerClass
public static final java.lang.Class getCallerClass(java.lang.Class clazz, int stackDepthOffset)
Find the caller of the passed in Class. May return null if caller not found on execution stack- Parameters:
clazz
- the Class to search for on stack to find caller ofstackDepthOffset
- Offset call-stack depth to find caller- Returns:
- the Class of object that called parrameter class
- Throws:
java.lang.SecurityException
- if an existing SecurityManager disallows construction of another SecurityManager and thus blocks method results
-
getCallerMethod
public static final java.lang.String getCallerMethod(java.lang.Class clazz)
Get the method path name for the method from which the LogEvent was created, this includes the path name and the source filename and line number if the source was compiled with debugging on.- Parameters:
clazz
- the Class to search for on stack to find caller of- Returns:
- The method path name in the form "the.package.path.Method"
-
getRecentStack
public static final java.lang.String getRecentStack(java.lang.Class clazz, int entries)
Return the current call stack as a String, starting with the first call in the stack after a reference to theclazz
class, and then displayentries
entries.This can be useful for debugging code to determine where calls to a method are coming from.
- Parameters:
clazz
- the last class on the stack you are not interested in!entries
- the number of stack lines to return.- Returns:
- The method path name in the form "the.package.path.Method"
-
-