如何在btrace中将日志写入文件?

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左右.)

谢谢

JB-*_*JB- 5

您可以使用BTrace代理启动应用程序(http://kenai.com/projects/btrace/pages/UserGuide#btrace-agent).然后,您可以为代理指定scriptOutputFile参数,并且通过调用println等生成的所有输出将转到指定的文件而不是stdout.