2012-06-20 62 views
7

我想在應答請求時(例如127.0.0.1 - - [Wed, 20 Jun 2012 09:55:49 GMT] "GET /url HTTP/1.1" 200 1559 "http://localhost:3020/url" ...)運行我的node.js應用程序而不在終端中打印自動日誌。此外,我希望我的日誌從console.log()仍然可見,如果可能的話。運行沒有自動日誌的node.js

有誰知道如何做到這一點?我在Node上運行express.js。

感謝

+3

你有沒有在代碼中調用'app.use(express.logger())'(或類似的東西)? –

+0

是的,我不應該通過'console.log()'看到我的日誌嗎? – Masiar

回答

7

像布蘭登說,我覺得你正在使用的loggermiddleware某處你的代碼。您應該禁用該部分,特別是在production mode中。使用像這樣的東西:

app.configure(function(){ 
    app.use(express.methodOverride()); 
    app.use(express.bodyParser()); 
    app.use(app.router); 
}); 

app.configure('development', function(){ 
    app.use(express.static(__dirname + '/public')); 
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
}); 

app.configure('production', function(){ 
    var oneYear = 31557600000; 
    app.use(express.static(__dirname + '/public', { maxAge: oneYear })); 
    app.use(express.errorHandler()); 
}); 
+0

非常感謝,通過禁用該部分,我現在沒有看到所有的日誌,只是看到我的日誌:-)。 – Masiar

+3

新名稱是摩根(https://www.npmjs.com/package/morgan),例如你應該搜索一個類似'app.use(morgan('dev'));' – Boern

+0

請用Boern的貢獻更新答案! – franer