node.js express middleware 중에서 logger를 사용하여 실제 파일로 logging 하는 방법
/**
* express 처음에 init 하시면 app.js 를 비롯하여 여러 디렉토리가 생기는데
* logs 디렉토리에 아무것도 안남는다고 의문을 가지신 분에게 도움이 될거 같습니다.
* connect의 middleware logger 는 기본이 stdout 으로 출력하고 있었네요.
* http://senchalabs.github.com/connect/middleware-logger.html
* manual을 살펴보니 stream options 이 있었군요.
* 한번 생각나서 fs core module의 createWriteStream 을 사용하여 해봤더니 잘되네요.
* 다른 방법도 있으신분은 알려주세요
*/
var fs = require('fs'),
sys = require('sys');
var filename = __dirname + '/logs/hello_log.txt';
var fileStream = fs.createWriteStream(fileName);
// error handler
fileStream.addListener("error", function(err) {
sys.debug(err);
});
// drain
fileStream.addListener("drain", function() {
console.log('drain');
});
// Configuration
app.configure(function(){
// 이 부분입니다. stream property에 stream 설정
var options = {stream: fileStream};
app.use(express.logger(options));
// ....
});