2017-03-27 14 views
3

ExpressJS 앱의 오류를 어떻게 파일에 기록 할 수 있습니까?NodeJS ExpressJS - 프로덕션 서버의 오류를 기록하는 방법은 무엇입니까?

은 내가 https://github.com/Seldaek/monolog 쉽게 슬림 프레임 워크를 로그인 할 수 있습니다 알고

Model.findOne(options, function(err, doc) { 

    var output = {}; 
    if (err) { 
     console.log("Error retrieving doc: " + err); 
    } 

하지만 내 생산 :

$app->get('/tickets', function (Request $request, Response $response) { 
    $this->logger->addInfo("Something interesting happened"); 

    $mapper = new Simon\TicketMapper($this->db); 
    $tickets = $mapper->getTickets(); 

    $response->getBody()->write(var_export($tickets, true)); 
    return $response; 
}); 

익스프레스에서, 나는 보통 개발에 대한 콘솔에 오류를 기록 서버가 잘못되었을 때 유용한 로그 파일이 필요합니다.

아이디어가 있으십니까? 생산의 하나

// development error handler 
// will print stacktrace 
if (app.get('env') === 'development') { 

    app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
     message: err.message, 
     error: err 
    }); 
    }); 

} 

// production error handler 
// no stacktraces leaked to user 
app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
     message: err.message, 
     error: {} 
    }); 
}); 

하지만 어떻게 설정합니까 : 익스프레스의 app.js에서

, 그것은이있다? 내가 필요한 모노 로고와 같은가요?

+1

이 파일을 참조 할 수 있도록 콘솔 대신 파일에 오류를 출력하는 것처럼 간단해야합니다. http://stackoverflow.com/questions/8393636/node-log-in-a-file-instead-of-the-console – Maxwelll

답변

2

morgan과 같은 로깅 라이브러리를 추가하거나 pm2와 같은 프로세스 관리자에서 노드 응용 프로그램을 실행중인 경우 pm2가 로깅을 추적합니다. 나는 pm2 톤을 사용하지 않았지만 당신이 이해할 수있는 것에서는 console.log 같은 문과 pm2는 앱의 모든 출력을 로그 파일에 저장할 것입니다. pm2의 로깅 기능에 대한 자세한 내용은 here을 참조하십시오.

+0

PM2를 사용합니다. 하지만 코드에서 수동으로 관리 할 수있는 기록원을 선호합니다. – laukok

5

winston은 로깅을위한 인기있는 라이브러리입니다.

모든 로그를 하나의 파일로 전송하거나 오류, 디버그 및 정보 로그에 대해 다른 파일을 보관할 수 있습니다.

예 : 코드에서

var winston = require('winston'); 

    var logger = new winston.Logger({ 
    level: 'error', 
    transports: [ 
     new (winston.transports.File)({ filename: 'error.log' }) 
    ] 
    }); 

는 :

logger.log('error', 'test error message %s', 'my string'); 

또한 크기 나 날짜를 기준으로 로그 파일을 회전 윈스턴과 함께 winston daily rotate file를 사용할 수 있습니다.