2014-01-15 2 views
0

node.js를 사용하여 미들웨어 logger() 프레임 워크에 연결하려고합니다.Node.js Logger 사용 연결

app.use(connect.logger("dev")); 

이 코드는 모든 요청마다 로그를 기록합니다. 내가 코드를 디버그하고 형식으로 로그 파일에 쓰기 (연결 로거에 의해 지원, dev 여기에). 이 디버그 문을 어디에서 logger() 메서드에 액세스 할 필요가 및 매개 변수로 내 개체를 제공하고 logger/logfile/stdout 기록하게 코드의 모든 모듈에서 수 있습니다.

그러나 logger.js (미들웨어)의 코드를 보면 stream/stdout의 로그 데이터를 res.end 객체에 쓰는 기능을 바인딩합니다. 즉, 한 번만 실행한다는 의미입니다.

코드에서 아무 곳이나 (전역 내보내기를 사용하는 경우) 처럼 로거 메서드를 호출 할 수있는 방법이 있습니까?

 //test.js module 
     logger("some parameter") 

lib 디렉토리 파일에 로거() 호출의 반환 값을 참조하십시오 내가 추적을 console.log() 문을 사용하고, 현재

return function logger(req, res, next) { 
    req._startTime = new Date; 
// immediate 
if (immediate) { 
    var line = fmt(exports, req, res); 
    if (null == line) return; 
    stream.write(line + '\n'); 
// proxy end to output logging 
} else { 
    var end = res.end; 
    res.end = function(chunk, encoding){ 
    res.end = end; 
    res.end(chunk, encoding); 
    var line = fmt(exports, req, res); 
    if (null == line) return; 
    stream.write(line + '\n'); 
    }; 
} 


next(); 

을 logger.js. 팀, 정말 고맙겠습니다.

답변

0

환영합니다!

연결 로거는 console.log를 수정하지 않거나 stdout/stderr 출력을 수신 대기하지 않습니다.

대신 요청마다 자체 '미리 정의 된'메시지를 자동으로 출력합니다.

맞춤 로그는 winston 또는 log4js-node입니다.

sencha docs에서 http://www.senchalabs.org/connect/logger.html은 미리 정의 된 메시지를 사용자 정의하는 방법과 고유 한 값을 추가하는 방법을 설명합니다.

하지만 사용자 정의 로그 형식 만 찾고 있다면 정말 좋은 모듈이 있습니다. .