728x90
반응형
문제점 및 증상
NodeJs에서 "Winston" 모듈을 설치하여 "transports.Console()"을 이용하여, 콘솔로 로그를 출력하는데 터미널에서 직접 소스를 실행하면 로그가 잘 표시되나, VSCode에서 실행하면 디버그 콘솔에 다음과 같이 아무런 메시지가 표시되지 않았습니다.
구현한 소스는 다음과 같습니다.
const { createLogger, transports } = require("winston");
const consoleTransport = new transports.Console();
const logger = createLogger({
level: 'debug',
transports: [consoleTransport]
, stderrLevels: ['error', 'debug']
});
logger.info('This is an info log message.');
logger.warn('This is a warning log message.');
logger.error('This is an error log message.');
console.log(logger.silent)
다음은 터미널에서 직접 실행한 결과입니다.
> node .\demo\logger_demo3.js
{"level":"info","message":"This is an info log message."}
{"level":"warn","message":"This is a warning log message."}
{"level":"error","message":"This is an error log message."}
undefined
다음은 VSCode에서 직접 실행한 결과입니다.
C:\Dev\nodejs\node.exe .\demo\logger_demo3.js
undefined
해결 방법
해결 방법은 의외로 간단하였습니다.
VSCode의 "launch.json" 파일을 열어서 다음 설정을 추가하면 됩니다. "'outputCapture': 'std'"
위와 같이 "launch.json" 파일을 설정한 뒤에 실행하면, 직접 터미널에서 실행한 것과 동일한 결과를 얻을 수 있습니다.
C:\Dev\nodejs\node.exe .\demo\logger_demo3.js
Debugger attached.
{"level":"info","message":"This is an info log message."}
{"level":"warn","message":"This is a warning log message."}
{"level":"error","message":"This is an error log message."}
undefined
Waiting for the debugger to disconnect...
참고자료
- "Winston Logger - NodeJs Debug console logs not showing in VSCode":https://stackoverflow.com/questions/48027266
'프로그래밍 > Node.js' 카테고리의 다른 글
[javascript] 배열 순서를 마구 뒤섞기(shuffle) (0) | 2023.11.06 |
---|---|
[nodejs] 구글 2FA 인증을 통한 SMTP 메일 발송 오류 해결기 (0) | 2022.10.19 |
Node.js MySQL 연동 - INSERT (0) | 2021.05.22 |
Node.js MySQL 연동 - SELECT (0) | 2021.05.20 |
Node.js의 Timers (0) | 2021.04.22 |