무작정 개발.Vlog

[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에 기록
npm 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

var 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("파일 복사했다.");
				});

test9.js 콘솔 결과
test9.js 콘솔 결과

콘솔에 위처럼 출력되는 동시에 log 폴더 안에 로그 파일이 생성된다.

반응형

블로그의 정보

무작정 개발

무작정 개발

활동하기