Skip to content

Instantly share code, notes, and snippets.

@anurbol
Created July 28, 2018 11:27
Show Gist options
  • Save anurbol/71e53cd901b9793a755007b615a52e1b to your computer and use it in GitHub Desktop.
Save anurbol/71e53cd901b9793a755007b615a52e1b to your computer and use it in GitHub Desktop.
["log", "warn", "error"].forEach((methodName) => {
const originalMethod = console[methodName]
console[methodName] = (...args) => {
let initiator = "unknown place"
try {
throw new Error()
} catch (e) {
if (typeof e.stack === "string") {
let isFirst = true
for (const line of e.stack.split("\n")) {
const matches = line.match(/^\s+at\s+(.*)/)
if (matches) {
if (!isFirst) { // first line - current function
// second line - caller (what we are looking for)
initiator = matches[1]
break
}
isFirst = false
}
}
}
}
originalMethod.apply(console, [...args, "\n", ` at ${initiator}`])
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment