자바스크립트 웹 애플리케이션을 개발할 때, 로깅 및 모니터링은 매우 중요한 부분입니다. 이를 통해 애플리케이션의 동작을 추적하고 문제를 해결할 수 있습니다. 자바스크립트 미들웨어를 사용하면 손쉽게 로그를 기록하고, 애플리케이션의 성능을 모니터링할 수 있습니다.
winston 라이브러리를 사용한 로그 생성
winston은 Node.js용 로깅 라이브러리로, 다양한 로깅 수준과 포맷을 지원합니다. 다음은 winston을 사용하여 로그를 생성하는 예시입니다.
const winston = require('winston');
// 로그 인스턴스 생성
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'app.log' }),
]
});
// 로그 메시지 기록
logger.info('Hello, world!');
위 예시에서는 winston 모듈을 require
하여 로깅 인스턴스를 생성합니다. level
은 로그 수준을 나타내며, format
은 로그의 출력 형식을 설정합니다. transports
는 로그가 출력될 장소를 지정하는데, 위 예시에서는 콘솔과 파일에 로그를 출력하도록 설정하였습니다.
morgan 미들웨어를 사용한 HTTP 요청 로깅
morgan은 Express.js용 HTTP 요청 로깅 미들웨어로, 간단한 설정만으로 HTTP 요청과 응답을 로깅할 수 있습니다. 다음은 morgan을 사용하여 HTTP 요청 로깅하는 예시입니다.
const express = require('express');
const morgan = require('morgan');
const app = express();
// 로깅 미들웨어 등록
app.use(morgan('combined'));
// 라우트 및 서버 실행
app.get('/', (req, res) => {
res.send('Hello, world!');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
위 예시에서는 morgan('combined')
을 사용하여 사용자 요청과 응답을 결합한 형식으로 로깅합니다. 로그는 기본적으로 콘솔에 출력되며, 필요에 따라 다른 출력 설정을 사용할 수도 있습니다.
결과
winston과 morgan을 사용하여 로깅 및 모니터링을 간편하게 구현할 수 있습니다. 이를 통해 애플리케이션의 동작을 추적하고, 문제를 해결하는 데 도움을 받을 수 있습니다.
자세한 내용은 winston GitHub 저장소와 morgan GitHub 저장소를 참조하세요.
해시태그
#JavaScript #로그