[node.js] winston 모듈
by 무작정 개발반응형
2022.04.01(69일 차)
이번에는 node.js의 외부 모듈인 winston에 대해 정리할 것이다.
winston 모듈
node.js의 대표적인 모듈 중 하나인 winston 모듈을 통해 로그를 기록으로써 log.txt와
같이 파일로 남길 수 있다.
(1) - winston 모듈 설치 방법
- cmd(window) 혹은 터미널(Mac OS)에서 작성
- 외부 모듈을 설치할 때는 항상 해당 프로젝트의 경로에서 명령
- 외장 모듈을 설치할 때마다 설치한 내용이 package.json에 기록
javascriptnpm install winston // 설치 npm install winston --save // package.json에 기록 npm install winston-daily-rotate-file --save // 매일매일 로그를 파일에 기록
외부 모듈 설치 방법 및 명령어
npm install 모듈 이름 : 설치
npm uninstall 모듈 이름 : 삭제
npm install -g npm : 모든 모듈 업데이트
npm install 모듈 이름 --save : package.json 파일에 저장 => 이렇게 하면 설치한 프로젝트에만 인식
npm install 모듈 이름 --g(--global) : 전역 환경에 파일 저장 => 이렇게 하면 모든 프로젝트에 인식된다.
이렇게 설치하면 경로는 하단 C:\Users\itwill\AppData\Roaming\npm\node_modules
npm install : package.json 파일에 기록된 모든 패키지 설치
npm list : 설치된 패키지 정보 npm list -g : 전역 환경에 설치된 정보
(2) - winston 모듈 예제
로그 레벨( 0 -> 7 심각)
debug: 0-> info:1-> notis:2-> warning:3 -> error:4 -> crit:5-> alert:6-> emerg:7
test9.js
javascriptvar winston = require("winston");//로그 처리 모듈 var winstonDaily = require("winston-daily-rotate-file");//로그 일별처리 모듈 var logger = winston.createLogger({ //debug: 0-> info:1->notis:2->warning:3 -> error:4 -> crit:5->alert:6->emerg:7 level:"debug", format: winston.format.simple(), transports: [ new (winston.transports.Console)({ colorize: true}), new (winstonDaily)({ filename: './log/server_%DATE%.log', maxSize:"10m", datePattern: 'YYYY-MM-DD HH-mm-ss' }) ] }); var fs = require("fs"); var inName = "./output.txt"; var outName = "./output4.txt"; fs.exists(outName,function(fileName){ if(fileName){ fs.unlink(outName,function(err){ if(err) throw err; logger.info(outName + "삭제할거야") }) return; } var inFile = fs.createReadStream(inName,{flags:"r"}); var outFile = fs.createWriteStream(outName,{flags: "w"}); inFile.pipe(outFile); logger.info("파일 복사했다."); });

콘솔에 위처럼 출력되는 동시에 log 폴더 안에 로그 파일이 생성된다.
반응형
블로그의 정보
무작정 개발
무작정 개발