📄 trace.java
字号:
/******************************************************************************
* The contents of this file are subject to the Compiere License Version 1.1
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the License at http://www.compiere.org/license.html
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Original Code is Compiere ERP & CRM Business Solution
* The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
* Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts
* created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
* Contributor(s): ______________________________________.
*****************************************************************************/
package org.compiere.util;
import java.io.*;
import java.util.*;
/**
* Trace Information
*
* @author Jorg Janke
* @version $Id: Trace.java,v 1.4 2002/09/01 22:34:37 jjanke Exp $
*/
public class Trace
{
/**
* Get Caller Array
*
* @param caller Optional Thowable/Exception
* @param maxNestLevel maximum call nesting level - 0 is all
* @return Array of class.method(file:line)
*/
public static String[] getCallerClasses (Throwable caller, int maxNestLevel)
{
int nestLevel = maxNestLevel;
if (nestLevel < 1)
nestLevel = 99;
//
ArrayList list = new ArrayList();
Throwable t = caller;
if (t == null)
t = new Throwable();
StackTraceElement[] elements = t.getStackTrace();
for (int i = 0; i < elements.length && list.size() <= maxNestLevel; i++)
{
String className = elements[i].getClassName();
// System.out.println(list.size() + ": " + className);
if (!(className.startsWith("org.compiere.util.Trace")
|| className.startsWith("java.lang.Throwable")))
list.add(className);
}
String[] retValue = new String[list.size()];
list.toArray(retValue);
return retValue;
} // getCallerClasses
/**
* Get Caller with nest Level
* @param nestLevel Nesting Level - 0=calling method, 1=previous, ..
* @return class name and line info of nesting level or "" if not exist
*/
public static String getCallerClass (int nestLevel)
{
String[] array = getCallerClasses (null, nestLevel);
if (array.length < nestLevel)
return "";
return array[nestLevel];
} // getCallerClass
/**
* Print Stack Tace Info (raw)
*/
public static void printStack()
{
Throwable t = new Throwable();
t.printStackTrace();
} // printStack
} // Trace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -