调试相关的工具
| Modifiers | Name | Description |
|---|---|---|
static Boolean |
pdenabled |
| Type | Name and description |
|---|---|
static void |
addLibraryDir(String libraryPath)强行设置系统属性 java.library.path(仅对当前 jvm 有效) |
static String |
enableListLogger(boolean enabled = true)在日志中打印列表查询执行的 hql 语句 |
static String |
enableSqlLogger(boolean enabled = true)在日志中打印 hibernate 执行的 sql 语句 |
static java.net.URL |
getClassLocation(Class clazz)获得类的class文件路径 |
static Object |
getField(Object obj, String name, Class clazz)使用反射机制,获得 private 或 protected 的成员变量的值. |
static Object |
getInaccessibleField(Object obj, String name, Class clazz) |
static Object |
invokeInaccessibleMethod(Object obj, String name, List<Class> paramTypes, List<Object> args) |
static Object |
invokeMethod(Object obj, String name, List<Class> paramTypes, List<Object> args)使用反射机制,调用 private 或 protected 的方法. |
static Integer |
killDbConnections(Long timeout = null, Boolean printStatementCache = false)杀掉链接时间太长的数据库链接(后果未知) |
static void |
pm(Object msg)开始性能调试后,打印每个运行阶段和总的耗时(毫秒) |
static void |
printCaches()打印所有缓存的数量、占用内存大小等信息 |
static void |
printClassLoaderURLs(ClassLoader loader = null)打印 classloader 中的 urls (classpath、jar包等) |
static void |
printObject(Object o)打印对象的 toString 结果 |
static void |
printProperties(Object o)打印对象的所有属性,主要是便于在 java 类中调用 |
static void |
printRequestAttributes(javax.servlet.http.HttpServletRequest request = ServletUtils.getRequest()打印所有请求属性 |
static void |
printRequestCookies(javax.servlet.http.HttpServletRequest request = ServletUtils.getRequest()打印所有 cookie 信息 |
static void |
printRequestHeaders(javax.servlet.http.HttpServletRequest request = ServletUtils.getRequest()打印所有请求头 |
static void |
printRequestParameters(javax.servlet.http.HttpServletRequest request = ServletUtils.getRequest()打印所有请求参数 |
static void |
printSessionAttributes(javax.servlet.http.HttpSession session = ServletUtils.getSession()打印所有 session 属性 |
static void |
printStackTrace(Closure filter = null)打印过滤的堆栈轨迹到控制台,同时记录完整的堆栈到临时文件夹的 bro-stacktrace.log 文件中 |
static void |
printStacktrace(Closure filter = null) |
static void |
ps(Object msg, org.apache.commons.logging.Log log = null)开始性能调试,并打印第一个时间戳 |
static void |
setField(Object obj, String name, Class clazz, Object value)使用反射机制,设置 private 或 protected 的成员变量的值 |
static void |
setInaccessibleField(Object obj, String name, Class clazz, Object value) |
static String |
setLogLevel(Object name, String level)修改日志级别 |
static void |
setenv(String name, String value)强行设置环境变量(仅对当前 jvm 有效) |
static void |
setenv(Map<String, String> newenv)强行设置环境变量(仅对当前 jvm 有效) |
static String |
toString(Object o)返回对象的 toString 结果 |
| Methods inherited from class | Name |
|---|---|
class Object |
Object#wait(long, int), Object#wait(long), Object#wait(), Object#equals(Object), Object#toString(), Object#hashCode(), Object#getClass(), Object#notify(), Object#notifyAll() |
强行设置系统属性 java.library.path(仅对当前 jvm 有效)
原文:https://blog.csdn.net/cruise_h/article/details/41575481
在日志中打印列表查询执行的 hql 语句
基于插件 bropen-framework,并且通过 listFields 方式定义的列表。
等同于 LoggerFactory.getLogger( 'bropen.framework.annotation' ).level = Level.TRACE 或调用 setLogLevel 方法。
在日志中打印 hibernate 执行的 sql 语句
等同于 LoggerFactory.getLogger( 'org.hibernate.SQL' ).level = Level.DEBUG 或调用 setLogLevel 方法。
获得类的class文件路径
clazz - 要获取文件路径的class使用反射机制,获得 private 或 protected 的成员变量的值.
示例:DebugUtils.getField( Foobar.class, "bar", int.class )
obj - 对象或类,如果是类,则取静态的成员变量name - 成员变量的名称clazz - 成员变量的类型,如果有 name 则可以为 null使用反射机制,调用 private 或 protected 的方法.
示例:
// 调用没有参数的方法 foo
DebugUtils.invokeMethod( foobar, "foo", null, null )
// 使用java调用有一个int类型参数的静态方法 bar
DebugUtils.invokeMethod( Foobar.class, "bar", (List) Arrays.asList(Integer.class), (List) Arrays.asList(200))
obj - 如果是class,则执行静态方法name - 方法名paramTypes - 方法参数类型的列表args - 调用方法的参数列表杀掉链接时间太长的数据库链接(后果未知)
timeout - 超时时间(单位毫秒,默认为2小时)printStatementCache - 是否打印sql cache(也许能看出点蛛丝马迹)开始性能调试后,打印每个运行阶段和总的耗时(毫秒)
打印所有缓存的数量、占用内存大小等信息
打印 classloader 中的 urls (classpath、jar包等)
打印对象的 toString 结果
相对于 java,包括更多内容,比如数组值的明细等。
打印对象的所有属性,主要是便于在 java 类中调用
打印所有请求属性
打印所有 cookie 信息
打印所有请求头
打印所有请求参数
打印所有 session 属性
打印过滤的堆栈轨迹到控制台,同时记录完整的堆栈到临时文件夹的 bro-stacktrace.log 文件中
filter - 可接收一个类型为 StackTraceElement ste 的参数的闭包,过滤日志是否显示,如 ste.className.contains("bropen")开始性能调试,并打印第一个时间戳
示例:
DebugUtils.ps("start") // 开始调试
...
DebugUtils.pm("foobar") // 打印start开始到当前时间点的耗时
...
DebugUtils.pm("end") // 打印start开始到当前时间点的耗时,以及foobar到当前时间点的耗时
msg - 需要显示的信息log - 用 log.debug 来代替 System.out.println 打印时间戳使用反射机制,设置 private 或 protected 的成员变量的值
obj - 对象或类,如果是类,则设置静态的成员变量name - 成员变量的名称clazz - 成员变量的类型,如果有 name 则可以为 null修改日志级别
name - 类名、包名,或者类本身,如:bropen.toolkit.utilslevel - 要更改的级别,包括:ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF强行设置环境变量(仅对当前 jvm 有效)
强行设置环境变量(仅对当前 jvm 有效)
返回对象的 toString 结果
相对于 java,包括更多内容,比如数组值的明细等。