[SOLVED] Javascript remove last item in stack trace string


I am creating a Javascript logger, in which, on error messages, I am also adding the stack trace like this:

function logMessage(logMessage) 
  let stackTrace = new Error().stack;
  logMessage.stackTrace = stackTrace;

This gives me the stack trace, but it also obviously adds the method of logMessage itself as the last item on the stack…

How can I remove the last trace so I’ll only see the trace up until the point that the logMessage was called, but without the logMessage itself?


The way to do it is really simple since the stack we are getting is a string divided by \n, in this format:

at ... \n
at ... \n

so all we need to do is:

let stackTrace = new Error().stack;   //get the stack trace string
let arr = stackTrace.split("\n");     //create an array with all lines
arr.splice(1,1);                      //remove the second line (first line after "ERROR")
stackTrace = arr.join("\n");          //join array back to a string

Answered By – Yonatan Nir

Answer Checked By – David Goodson (BugsFixing Volunteer)

Leave a Reply

Your email address will not be published. Required fields are marked *