반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- WinForm
- Compare
- 하위노드
- nodejs
- sql 서버
- 한번에 체크
- 깜빡임
- SQL Server
- github
- 비교
- html 코드
- SSMS
- checkbox
- json
- 로깅
- CheckAllChildNodes
- ChatGPT
- body
- 윈폼
- input
- ejs
- header
- 초기설정
- jQuery
- 깃허브
- footer
- MSSQL
- Git
- treeview
- C#
Archives
- Today
- Total
타닥타닥 민타쿠
Nodejs 파일명, 라인 나오게 로깅하기 (tracer 모듈) 본문
반응형
Nodejs 에서 로깅 모듈로 유명한 winston 모듈은 성능 등의 이슈로 추적(tracing) 기능을 지원하지 않는다고 한다.
일부 유저들이 winston 을 쓰면서 파일명, 라인(몇째 줄인지)까지 나오게 하는 시도들이 있는 것 같지만,
불안정하고 성능이 좋지 못하다는 공식 입장을 보고도 그러한 방법을 써볼 필요는 없는 것 같다.
따라서, tracer 라는 편리한 모듈을 써서 쉽고 간편하게 파일명과 라인 출력을 해보았다.
- npm install tracer
프로젝트 경로에서 명령어를 통해 모듈 설치 - tracer.js
var fs = require('fs'); var logger = require('tracer').colorConsole({ transport: function(data) { console.log(data.output); // logs 폴더에 로그 파일을 생성할 것이므로 폴더를 미리 만들어 놓아야 한다! fs.appendFile('logs/'+getTodayFormat()+'.log', data.rawoutput + '\n', err => { if (err) throw err }); } }); function getTodayFormat() { let today = new Date(); let year = today.getFullYear(); // 년도 let month = today.getMonth() + 1; // 월 let date = today.getDate(); // 날짜 // let day = today.getDay(); // 요일 let format = year + '-' + (((month+'').length === 1)?'0':'')+month + '-' + (((date+'').length === 1)?'0':'')+date; // ex) 2021-08-24 return format; } module.exports = logger;
- app.js
const express = require('express'); const app = express(); const logger = require('./pages/assets/js/tracer'); // tracer.js // 로컬 변수로 사용 app.use(function(req, res, next) { res.locals.logger = logger; next(); });
- cognito.js (router)
const express = require('express'); const router = express.Router(); router.get('/login', function(req,res){ res.locals.logger.error('GET /login !?!?!'); res.render('login'); });
- 로그 출력 확인
- 콘솔
- 파일
파일명은 위 format 에서 직접 설정해주었고
날짜, 시간, 로그 레벨, 파일명, 라인, 로깅 내용까지 잘 출력 및 저장되었다.
참고로 로그 레벨은
log, trace, debug, info, warn, error 가 있고, 세부적인 설정방법은 아래 모듈참조페이지 링크를 통해서 알 수 있다.
모듈참조페이지
반응형
'개발 > Nodejs' 카테고리의 다른 글
Ajax 통신시 제한시간 설정 및 로딩 아이콘 표시하기 (0) | 2021.08.14 |
---|---|
HTML CSS 글자(폰트)에 테두리, 그림자 넣기 (0) | 2021.08.06 |
Nodejs node-schedule 로 간단히 스케줄러 구현하기(기간 반복, 날짜 반복) (0) | 2021.08.04 |
Nodejs nodemailer 로 이메일 보내기(파일 첨부) (0) | 2021.08.02 |
Nodejs 로그 저장하기(winston 모듈) (0) | 2021.07.31 |
Comments