我在另外一个webapp里用了app.error可以正常写入错误日志,这个用app.use却写不进去 但是下面这个app.use(function (err, req, res, next)如果改成app.error又会报错 var error_logfile = fs.WriteStream(app_config.error_logfile, { flags: ‘a’ }); var public_dir = app_config.public_dir; app.configure(‘development’, function () { app.use(express.static(public_dir)); if (app_config.error_log) { //error_log为true app.use(function (err, req, res, next) { meta += ‘[’ + new Date() + '] ’ + req.url + ‘\n’; error_logfile.write(meta + err.stack + ‘\n’); next(); }) } else { app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); } app.use(express.bodyParser()); });
app.error 已经 deprecated 了。 会不会跟你 app.use 的位置有关?放在所有 router 最后试试。
是的,app.error不再用了,所以换成use,但错误日志死活写不进去
恩,是我的位置写错了,访问日志写在前面,错误日志需要放在router后面~~