[Node.js] 將錯誤資訊輸出至檔案

一般在撰寫 Node.js 時,使用 console.log 會輸出到終端機的畫面,然而若想要輸出到檔案中的話,可以透過 2> 來執行。

一、建立 stderr.js

內容如下,其中 read_file.txt 是不存在的檔案:

var fs = require('fs');
var file = 'read_file.txt'
var encoding = 'utf-8';

fs.readFile(file, encoding, function(err, data){
  if(err){
    console.error("error - \n %s", err);
    console.warn("warn - \n %s", err);
  } else {
    console.log(data);
  }
});

此時透過以下指令來執行該檔:

$ node stderr.js

會產生以下的輸出結果,如圖(也就是會直接在終端機呈現出錯誤訊息):

然而若現在改用以下指令來執行:

$ node stderr.js 2> error.log

此時以上的錯誤訊息,就會被寫入 error.log 中了,error.log 檔案會被自動建立。 2> 意思是:「重定向標準錯誤輸出串流到檔案」。

另外值得一提的是:在 Node.js 中,當輸出目標是檔案時, console 模組是同步執行的。

您可在此處留言

avatar

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

  Subscribe  
Notify of