org.apache.log.util

Class StackIntrospector

public final class StackIntrospector extends 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 $

Author: Avalon Development Team Sylvain Wallez Stuart Roebuck

Nested Class Summary
static classStackIntrospector.CallStack
Hack to get the call stack as an array of classes.
Field Summary
static StackIntrospector.CallStackc_callStack
Constructor Summary
StackIntrospector()
Private constructor to block instantiation.
Method Summary
static ClassgetCallerClass(Class clazz)
Find the caller of the passed in Class.
static ClassgetCallerClass(Class clazz, int stackDepthOffset)
Find the caller of the passed in Class.
static StringgetCallerMethod(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.
static StackIntrospector.CallStackgetCallStack()
Create Hack SecurityManager to get CallStack.
static StringgetRecentStack(Class clazz, int entries)
Return the current call stack as a String, starting with the first call in the stack after a reference to the clazz class, and then display entries entries.

Field Detail

c_callStack

private static StackIntrospector.CallStack c_callStack

Constructor Detail

StackIntrospector

private StackIntrospector()
Private constructor to block instantiation.

Method Detail

getCallerClass

public static final Class getCallerClass(Class clazz)
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: SecurityException if an existing SecurityManager disallows construction of another SecurityManager and thus blocks method results

getCallerClass

public static final Class getCallerClass(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 of stackDepthOffset Offset call-stack depth to find caller

Returns: the Class of object that called parrameter class

Throws: SecurityException if an existing SecurityManager disallows construction of another SecurityManager and thus blocks method results

getCallerMethod

public static final String getCallerMethod(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"

getCallStack

private static StackIntrospector.CallStack getCallStack()
Create Hack SecurityManager to get CallStack.

Returns: the CallStack object

Throws: SecurityException if an existing SecurityManager disallows construction of another SecurityManager

getRecentStack

public static final String getRecentStack(Class clazz, int entries)
Return the current call stack as a String, starting with the first call in the stack after a reference to the clazz class, and then display entries 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"