본문 바로가기
TIL

TIL D-51 Nodejs 로그 파일 남기기

by 홍차23 2019. 12. 17.

오늘 배운 것>

4-1. 주소 문자열과 요청 파라미터 다루기

4-2. 이벤트 이해하기

4-3. 파일 다루기

4-4. 로그 파일 남기기

//logger.js
var winston = require('winston'); //로그 처리 모듈
var winstonDaily = require('winston-daily-rotate-file'); //로그 일별 처리 모듈
var moment = require('moment'); //시간 처리 모듈
// const logDir = 'log';

function timeStampFormat(){
    return moment().format('YYYY-MM-DD HH:mm:ss.SSS ZZ');
};

var logger = new (winston.createLogger) ({ //createLogger 로 바꿔야 에러 안남
    transports: [
        new (winstonDaily) ({
            name: 'info-file',
            filename: './log/server_%DATE%.log', //%DATE% 필요
            datePattern: 'YYYY-MM-DD', //datePattern 수정
            colorize: false,
            maxsize: 50000000,
            maxFiles: 1000,
            level: 'info',
            showLevel: true,
            json: false,
            timestamp: timeStampFormat
        }),
        new (winston.transports.Console) ({
            name: 'debug-console',
            colorize:true,
            level: 'debug',
            showLevel: true,
            json: false,
            timestamp: timeStampFormat
        })
    ],
    exceptionHandlers: [
        new(winstonDaily)({
            name: 'exception-file',
            filename: './log/exception_%DATE%.log',
            datePattern: 'YYYY-MM-DD',
            colorize: false,
            maxsize: 50000000,
            level: 'error',
            showLevel: true,
            json: false,
            timestamp: timeStampFormat
        }),
        new(winston.transports.Console)({
            name: 'exception-console',
            colorize: true,
            level: 'debug',
            showLevel: true,
            json: false,
            timestamp: timeStampFormat
        })
    ]
});

// var fs = require('fs');

// var inname = './output.txt';
// var outname = './output2.txt';

// fs.exists(outname, function(exists){
//     if(exists) {
//         fs.unlink(outname, function(err) {
//             if(err) throw err;
//             logger.info('기존 파일 [' + outname + '] 삭제함');
//         });
//     }

//     var infile = fs.createReadStream(inname, {flags: 'r'});
//     var outfile = fs.createWriteStream(outname, {flags: 'w'});
//     infile.pipe(outfile);
//     logger.info('파일 복사 [' + inname+ '] -> [' + outname + ']' );
// });

logger.debug('hi');

내일 공부할 것>

 

더보기

오늘은 개발할 시간을 산학협력회의, 기획회의쪽에 더 써버려서 공부시간이 늦어졌다. 지금은 새벽 두시..

그리고 책에 나오는대로 했을 때 에러 나는 걸 고치다 보니까 시간이 펑펑 흘러가버린다. 

날짜가 나와야 되는데 {message:} 형태로 나와버리네..

 

'TIL' 카테고리의 다른 글

TIL D-49 Nodejs 라우팅 이미지 부르기  (0) 2019.12.20
TIL D-50 Nodejs Mongodb 연결  (0) 2019.12.18
TIL D-52 Nodejs 세션, 캐시  (0) 2019.12.16
TIL D-53 Nodejs Docs | Modules  (0) 2019.12.15
TIL D-54 시험, 회의  (0) 2019.12.14

댓글