2013-05-17 2 views

답변

1

나는 그렇게 할 수있는 쉬운 방법을 발견하지 않은,하지만 난이 함께했다 : 가 compile()connect/lib/middleware/logger.js에서 가져

function compile(fmt) { 
    fmt = fmt.replace(/"/g, '\\"'); 
    var js = ' return "' + fmt.replace(/:([-\w]{2,})(?:\[([^\]]+)\])?/g, function(_, name, arg){ 
    return '"\n + (tokens["' + name + '"](req, res, "' + arg + '") || "-") + "'; 
    }) + '";' 
    return new Function('tokens, req, res', js); 
}; 

var formatter = compile(express.logger.default); // or another format, like '.tiny', '.dev' 

app.use(express.logger(function(tokens, req, res) { 
    if (res.statusCode === 200 || res.statusCode >= 400) // or whatever you want logged 
    return formatter(tokens, req, res); 
    return null; 
})); 

, 그것은 슬프게도 수출되지 않도록 사용할 수 없습니다 외부 적으로, 나는 그것을 복사했다. 물론 생성하고 사용하는 기능을 직접 사용할 수도 있지만 로깅 형식을 쉽게 전환 할 수 있습니다.

+0

오, 재미 있습니다. 고마워요. – UpTheCreek