오류 메시지 [중복]을 생성하여 console.error ()와 같은 추적을 가져옵니다.

Dec 13 2020

내가 할 때 나는 console.error('Custom Error')그것이 어디에서 왔는지에 대한 좋은 흔적을 얻습니다.

예를 들면 :

func1();

function func1() {
  func2();
}

function func2() {
  func3();
}

function func3() {
  console.error('Custom Error');
}

나는 얻다:

오류를 생성하지 않고 어떻게 할 수 console.log()있습니까?

답변

Danziger Dec 13 2020 at 06:44

console.trace()대신 사용할 수 있습니다 console.error().

콘솔에 console.trace()다음 과 같이 표시 됩니다 .

Trace
func3 @ js:24
func2 @ js:19
func1 @ js:15
(anonymous) @ js:12

그리고 이것은 console.error():

Custom Error
console.error   @   snippet-javascript-console.min.js?v=1:1
func3   @   js:23
func2   @   js:19
func1   @   js:15
(anonymous) @   js:12

당신은 그냥 로그인 대신 변수로 스택 추적을 얻고 싶은 경우에, 당신은 사용할 수 있습니다 Error.captureStackTrace(targetObject)또는 Error().stack, 그러나 모두가 아닌 표준 :

func1();

function func1() {
  func2();
}

function func2() {
  func3();
}

function func3() {
  const fakeErrorObject = {};
  
  Error.captureStackTrace(fakeErrorObject)
  
  const captureStackTraceTrace = fakeErrorObject.stack;
  const errorStackTrace = Error('Foo').stack;
  
  console.log(captureStackTraceTrace.replaceAll('at', '👉'));
  console.log(errorStackTrace.replaceAll('at', '👉'));
}
.as-console-wrapper {
  max-height: none !important;
}