编程语言
首页 > 编程语言> > java – 如何在btrace中将日志写入文件?

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