arthas02-arthas执行结果保存日志

arthas执行结果保存日志

1 方式一:命令行开启默认日志

执行结果保存日志

默认情况下arthas执行结果是不保存日志的,当然我们通过arthas提供的命令行options进行开启:

#### 关闭日志打印
[arthas@44607]$ options save-result false
 NAME         BEFORE-VALUE  AFTER-VALUE
----------------------------------------
 save-result  true          false
 #### 开启日志打印
[arthas@44607]$ options save-result true
 NAME         BEFORE-VALUE  AFTER-VALUE
----------------------------------------
 save-result  false         true
[arthas@44607]$

日志会异步保存在 {user.home}/logs/arthas-cache/result.log;

2 方式二:新版本arthas异步后台任务将结果存日志文件

该方法的关键是使用命令后面接上>> &,其中>> 代表输出重定向到日志文件,&意味着后台运行;

如果>> 带了具体的文件或者路径名,则会保存在我们运行java -jar arthas-boot.jar的当前文件夹下;

trace demo.MathGame run --skipJDKMethod false >> &
trace demo.MathGame run --skipJDKMethod false >> ding.log &

此时命令会在后台异步执行,并将结果异步保存在文件(~/logs/arthas-cache/${PID}/${JobId})中;

  • 此时任务的执行不受session断开的影响;任务默认超时时间是1天,可以通过全局 options 命令修改默认超时时间;
  • 如果任务是trace,默认执行次数是100次,而不是一天;
  • 此命令的结果将异步输出到文件中;此时不管 save-result 是否为true,都不会再往~/logs/arthas-cache/result.log 中异步写结果;
  • 如果只带&,将持续后台运行,但是日志还是会打印到控制台;
[arthas@44607]$ trace demo.MathGame run --skipJDKMethod false >> &
job id  : 15
cache location  : /Users/fwd/logs/arthas-cache/44607/15
[arthas@44607]$ jobs
[15]*
       Running           trace demo.MathGame run --skipJDKMethod false >> &
       execution count : 10
       start time      : Sun Feb 16 16:30:04 CST 2020
       cache location  : /Users/fwd/logs/arthas-cache/44607/15
       timeout date    : Mon Feb 17 16:30:04 CST 2020
       session         : 5723744d-f387-4269-b33e-fdd3f2e111fd (current)

如下所示使用watch命令观察的结果

☁  44607  watch -n 2 -d "tail -n 20 16"
☁  44607  pwd
/Users/fwd/logs/arthas-cache/44607
---------------------------------------------------------------------
Every 2.0s: tail -n 20 15                                fwding-mac.local: Sun Feb 16 16:34:32 2020

        +---[0.001164ms] java.lang.StringBuilder:<init>() #28
        +---[0.001211ms] java.lang.Integer:valueOf() #28
        +---[0.032685ms] java.lang.String:format() #28
        +---[min=0.001093ms,max=0.001202ms,total=0.002295ms,count=2] java.lang.StringBuilder:append(
) #28
        +---[0.001267ms] java.lang.Exception:getMessage() #28
        +---[9.21E-4ms] java.lang.StringBuilder:toString() #28
        `---[0.04581ms] java.io.PrintStream:println() #28

`---ts=2020-02-16 16:34:32;thread_name=main;id=1;is_daemon=false;priority=5;TCCL=sun.misc.Launcher$A
ppClassLoader@55f96302
    `---[0.226122ms] demo.MathGame:run()
        +---[0.003362ms] java.util.Random:nextInt() #23
        +---[0.027904ms] demo.MathGame:primeFactors() #24 [throws Exception]
        +---[0.001249ms] java.lang.StringBuilder:<init>() #28
        +---[0.001497ms] java.lang.Integer:valueOf() #28
        +---[0.033104ms] java.lang.String:format() #28
        +---[min=0.001101ms,max=0.001187ms,total=0.002288ms,count=2] java.lang.StringBuilder:append(
) #28
        +---[0.001384ms] java.lang.Exception:getMessage() #28
        +---[9.59E-4ms] java.lang.StringBuilder:toString() #28
        `---[0.044684ms] java.io.PrintStream:println() #28


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章