我是一個開發新手,今年早些時候開始玩node.js並非常喜歡它。我一直在逐漸增加node.js中的日誌記錄機制。從console.log開始,現在使用RAM磁盤將所有內容記錄到RAM磁盤中的文件中。在node.js中處理錯誤和異常日誌
這種登錄到RAM磁盤的方法接近我的願望。我不想要一個永久文件,但我確實需要一些持久性,這樣如果我的node.js崩潰,我不會丟失之前的日誌。我永遠使用自動重新啓動節點,這意味着我沒有一個活動的終端,我可以實時觀看日誌和錯誤。相反,我有一個GET方法,它從RAM磁盤中讀取所有日誌並將其提供給我。
這是我在RAM磁盤和內存中緩存文件保存日誌代碼:
function generateLog(level, logMsg) {
var logLevel;
if(level == levelOff)
return; // no need to go any further, logging has been disabled.
else if(level == levelDebug)
logLevel = "DEBUG: ";
else if(level == levelInfo)
logLevel = "INFO: ";
else if(level == levelWarning)
logLevel = "WARNING: ";
else if(level == levelError)
logLevel = "ERROR: ";
else if(level == levelException)
logLevel = "EXCEPTION: ";
if (level >= loggingLevel){
console.log(logLevel + logMsg);
checkIfFileExists(logFile, function(err,status){
if(err){ // if file does not exist, save it to memory buffer
logBuffer = logBuffer + '<br>' + logLevel + logMsg; // memory
}
else{ // file exists - save it to this file in RAM_disk
fs.appendFile(logFile, logLevel + logMsg + '\n', function(err) {
if(err) {
return console.log(err);
}
});
}
});
}
}
的問題是,當節點進程崩潰因異常或錯誤,則不會獲得登錄到RAM磁盤。
請教如何在節點中記錄錯誤和異常。
謝謝。我會嘗試一下並報告。 – Pankaj
謝謝。這工作,並證明在過去幾次崩潰有幫助。我接受這個答案。 – Pankaj