Jay*_*yan 4 java trace dtrace btrace
我有跟随btrace脚本.我想记录特定类中函数的进入和退出.
..
package com.sun.btrace.samples;
import com.sun.btrace.BTraceUtils;
import com.sun.btrace.Profiler;
import com.sun.btrace.annotations.*;
@BTrace class Profiling {
@Property
Profiler swingProfiler = BTraceUtils.Profiling.newProfiler();
@OnMethod(
clazz="com.pkg.classname",
method="/.*/")
void entry(@ProbeMethodName(fqn=true) String probeMethod) {
BTraceUtils.print("Entry" );
BTraceUtils.println(BTraceUtils.timestamp() );
BTraceUtils.println(probeMethod);
}
@OnMethod(
clazz="com.pkg.classname",
location=@Location(value=Kind.RETURN)
)
void exit(@ProbeMethodName(fqn=true) String probeMethod, @Duration long duration) {
BTraceUtils.print("Exit:" );
BTraceUtils.println(BTraceUtils.timestamp() );
BTraceUtils.println(probeMethod);
}
}
Run Code Online (Sandbox Code Playgroud)
这在控制台上提供了outout.我怎么能把结果写到文件?Btrace不允许创建新对象.
(显而易见的解决方法是重定向到文件.另一种选择是使用VisualVM btrace插件 - 然后输出到visualVM窗口.请注意它是否处理非常大的输出500Mb左右.)
谢谢
您可以使用BTrace代理启动应用程序(http://kenai.com/projects/btrace/pages/UserGuide#btrace-agent).然后,您可以为代理指定scriptOutputFile参数,并且通过调用println等生成的所有输出将转到指定的文件而不是stdout.
| 归档时间: |
|
| 查看次数: |
1979 次 |
| 最近记录: |