ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2025-05-18 (일) 개발일지 / 로그 찍다 서버 쥬금
    프로그래밍/개발메모 2025. 5. 18. 12:23
    728x90
    반응형

     

    1. console.info 함수를 덮어 썼는데 죽어버렸다.

    express 에서 req.params 를 로그를 찍었는데 프로그램이 예외를 밷으면 처리를 못했습니다.

    거의 2시간을 디버깅 해서 찾았는데 황당하군요

    console.info 를 winston 의 로그 함수로 교체를 했는데

    예가 object 를 인자로 받으면 로그를 찍다 말고 예외를 던져버렸습니다. 

    시간낭비 갑이군요

     

    로그 함수 내부에 try-catch 걸고.

    type LOG_FUNC = (text: string) => void;
    function log_write(func: LOG_FUNC, arr: any[]) {
      try {
        let output = "";
        for (let i = 0; i < arr.length; i++) {
          if (i != 0) output += " ";
          const data = arr[i];
          if (typeof data == "object") {
            output += JSON.stringify(data);
          } else {
            output += data;
          }
        }

        func(output);
      } catch (err) {
        const e = err as Error;
        func(`log_write_fail ${e.message} ${e.stack}`);
      }
    }

    console.info = function () {
      const arr: any[] = [];
      for (let i = 0; i < arguments.length; i++) {
        const data = arguments[i];
        arr.push(data);
      }
      log_write(logger.info, arr);
    };

    시간 낭비로 일요일을 시작했습니다.

     

     

     

     

     

     

    반응형
Designed by Tistory.