2021年12月30日 星期四

Node.js 的 console log 用法

[常用]

  • console.log()
    輸出訊息到stdout。
    其他別名 console.info()、console.debug()
    是 buffer 緩衝輸出,所以如果 process 突然中斷,可能不會成功輸出到stdout。
  • console.dir()
    輸出物件內容到stdout。
  • console.error()
    輸出訊息到stderr(同步寫入、會阻塞 process)。
    其他別名 console.warn()
  • console.time()、console.timeEnd()
    計算執行花費的時間。
  • console.trace()
    不引發錯誤,顯示程式碼堆疊追踪(stack trace、堆疊回溯)的資料。


[範例1] console.log()、console.error() 可用的參數
%s:字串格式輸出
%d:數字格式輸出
%j:JSON格式輸出

let myStr = "字串";
let myNum = 123;
let myObj ={aa:"abc",bb:999};
let myBool = true;
let myUndefined = undefined;
let myNull = null;

console.log("輸出:%s %s %s %s %s %s", myStr, myNum, myObj, myBool ,myUndefined, myNull);
console.log("輸出:%d %d %d %d %d %d", myStr, myNum, myObj, myBool ,myUndefined, myNull);
console.log("輸出:%j %j %j %j %j %j", myStr, myNum, myObj, myBool ,myUndefined, myNull);
結果:
輸出:字串 123 [object Object] true undefined null
輸出:NaN 123 NaN 1 NaN 0
輸出:"字串" 123 {"aa":"abc","bb":999} true undefined null



[範例2] 計算執行花費的時間
console.time('myTimerA');
.....其他程式碼.....
console.timeEnd('myTimerA');
結果:
myTimerA: 0.411ms



[範例3] stack trace 堆疊追踪
console.trace("堆疊追踪test");
結果:
Trace: 堆疊追踪test
    at Object.<anonymous> (/home/cg/root/5749468/main.js:26:9)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:389:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:504:3




參考:

沒有留言:

張貼留言