Skip to content

Instantly share code, notes, and snippets.

@nanha
Created July 5, 2011 00:49
Show Gist options
  • Save nanha/1064115 to your computer and use it in GitHub Desktop.
Save nanha/1064115 to your computer and use it in GitHub Desktop.
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));
// ....
});
@okeydoke
Copy link

Thanks, been looking for an example of how to set up logger to use a filestream,
I'm wondering if there needs to be handler to close the file stream if the app crashes? Or will they get closed automatically when node falls over?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment