java – 如何在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);
}
}
这在控制台上提供了outout.我怎么能把结果写到文件? Btrace不允许创建新对象.
(显而易见的解决方法是重定向到文件.另一种选择是使用VisualVM btrace插件 – 输出然后转到visualVM窗口.注意确定它是否处理非常大的输出500Mb左右.)
谢谢
解决方法:
您可以使用BTrace代理(http://kenai.com/projects/btrace/pages/UserGuide#btrace-agent)启动应用程序.然后,您可以为代理指定scriptOutputFile参数,并且通过调用println等生成的所有输出将转到指定的文件而不是stdout.
标签:java,trace,dtrace,btrace 来源: https://codeday.me/bug/20190626/1298275.html