handle errors and exceptions logging in node.js -


i'm newbie development , earlier year started playing around node.js , liked much. i've been gradually increasing logging mechanism in node.js. starting console.log , using ram disk log file in ram disk.

this method of logging ram disk close desire. don't want permanent file, want persistence if node.js crashes don't loose prior logs. using forever restart node automatically, means not have active terminal can watch logs , errors in real time. instead have method reads logs ram disk , serves me.

here code saving logs in file in ram disk , in memory buffer:

function generatelog(level, logmsg) {      var loglevel;      if(level == leveloff)         return; // no need go 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 not exist, save memory buffer                  logbuffer = logbuffer + '<br>' + loglevel + logmsg; // memory             }             else{   // file exists - save file in ram_disk                  fs.appendfile(logfile, loglevel + logmsg + '\n', function(err) {                      if(err) {                         return console.log(err);                     }                  });               }          });      }  } 

the problem when node process crashes due exception or error not logged ram disk.

please advice how log errors , exceptions in node.

when nodejs detects error not handled, crash. need have process.on('uncaughtexception') hook, catch , log error. example be;

process.on('uncaughtexception', function (err) {     if (err) {         console.log("caughtexception no error msg" + err.stack);         process.exit(1);     } }); 

this hook should used detect problem. when happens typically there no way recover, idea exit process. have stack in log @ actual failure.

you may want add process.on('exit') hook, determine if process crashed application error or other means; such "systemctl restart".


Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -