2019-9-18 Logging
로깅
- express에서 로깅을 하기 위해 winston을 사용하기로 했다.
- console.log를 사용하면 뭐가 잘못됬나? console.log는 잘못된게 없지만 windston을 사용하면 4가지 특징이 있다. stream, transports, formatting, levels
npm i --save winston
// /configs/winston.js
import fs from 'fs';
import winston from 'winston';
const logDir = __dirname + '/../logs';
if (!fs.existsSync(logDir)) {
fs.mkdirSync(logDir);
}
const infoTransport = new winston.transports.File({
filename: 'info.log',
dirname: logDir,
level: 'info',
});
const errorTransport = new winston.transports.File({
filename: 'error.log',
dirname: logDir,
level: 'error',
});
const logger = winston.createLogger({
transports: [infoTransport, errorTransport],
});
const stream = {
write: (messages) => {
logger.info(messages);
},
};
export { logger, stream };
// app.js
app.use(morgan('combined', { stream }));
느낀점
- 어제오늘 winston, morgan을 이용해서 로깅을 추적하는것을 구축했다. 어제는 단순히 winston이였는데, 그것을 활용해서 다양한 로그 레벨에서의 문제들을 트래킹할 수 있었다.
Written on September 18, 2019