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


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