2016-07-24 4 views
1

はありません示して私は現在、次のコードを持っている:猫はログに何も(サーバーを発現する)

var express = require('express'); 
var path = require('path'); 
var fs = require('fs'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 

var routes = require('./routes/index'); 
var users = require('./routes/users'); 

var app = express(); 

// Create write stream and append to file 
var accessLogStream = fs.createWriteStream(path.join(__dirname, 'access.log'), {flags: 'a'}); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 

// uncomment after placing your favicon in /public 
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use(express.static(path.join(__dirname, 'public'))); 

app.use('/', routes); 
app.use('/users', users); 

// catch 404 and forward to error handler 
app.use(function(req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 

// additional logging 
app.use(logger('combined', {stream: accessLogStream})); 

// error handlers 

// development error handler 
// will print stacktrace 
if (app.get('env') === 'development') { 
    app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
     message: err.message, 
     error: err 
    }); 
    }); 
} 

// production error handler 
// no stacktraces leaked to user 
app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
    message: err.message, 
    error: {} 
    }); 
}); 

ファイルへのログの内容を記述する必要がありますので、私はIPアドレス範囲に目を通すことができ、誰が自分のウェブサイトにアクセスしたのか、どこからアクセスしたのかを調べるしかし、ファイルが作成されていますが、cat access.logと入力すると内容が空白になりますが、自分でテストしたので、人々がアクセスしていることがわかります。私がGoogle上で見つけることができるものから、信頼できるプロキシとreq.ipsを使って何かをするはずです。

私が後だものにかなり似ています
app.set('trust proxy', function (ip) { 
    if (ip === '127.0.0.1' || ip === '123.123.123.123') return true; // trusted IPs 
    else return false; 
}); 

(私は私自身のサーバーのIPアドレスに「123.123.123.123」を変更すると仮定...?)しかし、私は何」:私は、サンプルコードのこのビットを発見しました私が作成したaccess.logファイルにこの出力を行うことが本当に好きです。

アイデア?

答えて

1

ATPBは、あなたが通常のトラフィックは表示されませんので、あなただけのエラーを記録します、あなたのlogger()後のあなたのルートを持っています。また、あなたのpublic/ディレクトリ内の静的な資産へのリクエストをログに記録したい場合は、その後、

app.use('/', routes); 

をさらにそれを上に移動:この行の前に

app.use(logger('combined', {stream: accessLogStream})); 

:あなたは、通常のトラフィックを確認したい場合は、この行を移動します前の行:

app.use(express.static(path.join(__dirname, 'public'))); 
関連する問題