옵션 중에 로그 파일이름에 날짜를 붙일 수도 있다
1 2 3 | var winston = require('winston'); //로그파일 var winstonDaily = require('winston-daily-rotate-file'); //매일 다른 파일 로그를 생성하는 모듈 var moment = require('moment'); //날짜 |
로그를 남기는건 중요하다.
데이터는 곧 힘이 된다. 사람들이 무엇을 원하는지 알면 그들이 원하는 걸 주고 내가 원하는 걸 받을 수 있다.
데이터를 쌓는데 가장 핵심적인 일 중 하나가 로그를 꼼꼼히 남기는 일이다.
node기반의 logging라이브러리는 다양하지만 꽤 오래전부터 winston이라는 라이브러리가 패권을 잡고있다.
오늘은 winston에 대해 알아보자.
프로젝트를 생성하고 winston을 npm으로 설치한다.
임포트해보자.
기본 설정
그냥 바로 사용해도 되지만 편의상 logger를 만들어서 사용했다.
사실 벌써 끝난거나 다름없다.
이런식으로 사용하면 로그가 출력된다.
사실 winston에서 가장 중요한건 transports라고 할 수 있는데, 형식을 정하거나 할 수 있다.
나는 로그를 file로 관리하고, 날짜별로 관리한다면 그것도 가능하다.
우선 타임스탬프부터 찍어보자.
나는 날짜별로 관리하기때문에 시간만 찍어보았다.
타임스탬프 찍기
로그레벨은 기본적으로 5가지가 있다.
때에 맞춰 사용하면 더 식별하기 쉬운 로그가 된다.
커스텀도 가능하지만 그건 다루지 않을거고
를 참조하자.파일로 로그 관리하기
먼저 파일로 로그를 관리하기 위해 파일시스템 라이브러리 fs를 설치한다.
풀 코드는 이렇다.
로그 디렉토리가 없으면 생성하고 그 아래 로그파일들을 적재하는 코드다.
maxSize를 넘어가면 새로운 파일이 생기고, maxFiles만큼만 생성된다.
logs.log 다음은 logs1.log이런식으로 생성된다.
날짜별로 로그 파일관리하기
원래는 winston안에 daily-rotate-file이 함께 있었는데, 어떤이유에서인지 분리되어 나왔다.
winston-daily-rotate-file을 설치하자
풀 소스는 이렇다.
이렇게하면 2017-03-03-logs.log라는 파일에 오늘치 로그가 쌓이게 된다.
winston으로 로그관리를 간단히 할 수 있게됬다.
ref : https://isme2n.github.io/devlog/2017/03/03/Winston-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/
'서버(Server) > Server&Nodejs&DB' 카테고리의 다른 글
nodejs : 서버에서 클라이언트에게 이미지 보내기 (2) | 2018.05.01 |
---|---|
nodejs : http 서버 생성 및 클라이언트 connection, request 처리 (0) | 2018.05.01 |
nodejs : 파일 열기, 닫기 처리와 createReadStream 으로 파일 읽기 (0) | 2018.04.30 |
Nodejs : 파일 쓰기 동기(writeFileSync), 비동기(writeFile) (0) | 2018.04.30 |
nodejs 파일 읽기 방식 : readFileSync: 동기 , readFile :비동기 (0) | 2018.04.30 |