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

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);};시간 낭비로 일요일을 시작했습니다.
반응형