[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("파일 복사했다.");
});
콘솔에 위처럼 출력되는 동시에 log 폴더 안에 로그 파일이 생성된다.
반응형
'Back-End > node.js' 카테고리의 다른 글
[node.js] 파일 업로드 (0) | 2022.04.04 |
---|---|
[node.js] 웹 서버 구축, express 미들웨어 (0) | 2022.04.04 |
[node.js] 이벤트, 파일 생성 및 삭제 (0) | 2022.04.03 |
[node.js] 배열, 콜백 함수, prototype 객체 생성 (0) | 2022.04.03 |
[node.js] 내장 모듈(os, path), 객체와 함수 (0) | 2022.04.03 |
블로그의 정보
무작정 개발
무작정 개발