logging节点的stdout和stderr

我正在使用mean.io的锅炉代码并使用命令启动服务器

node server.js 

如何login我的快速申请的stdout和stderr?

以下是我的server.js

 'use strict'; /** * Module dependencies. */ var mongoose = require('mongoose'), passport = require('passport'), logger = require('mean-logger'); /** * Main application entry file. * Please note that the order of loading is important. */ // Initializing system variables var config = require('./server/config/config'); var db = mongoose.connect(config.db); // Bootstrap Models, Dependencies, Routes and the app as an express app var app = require('./server/config/system/bootstrap')(passport, db); // Start the app by listening on <port>, optional hostname app.listen(config.port, config.hostname); console.log('Mean app started on port ' + config.port + ' (' + process.env.NODE_ENV + ')'); // Initializing logger logger.init(app, passport, mongoose); // Expose app exports = module.exports = app; 

那这个呢?

 console.log("I will goto the STDOUT"); console.error("I will goto the STDERR"); 

注意:这两个函数都会自动将新行添加到input中。

如果您不希望将这些换行符附加到您的input中,请执行此操作

 process.stdout.write("I will goto the STDOUT") process.stderr.write("I will goto the STDERR") 

process.stdoutprocess.stderr都是stream,所以你甚至可以把stream传给它们。 有关更多信息,请参阅stream上的Node.js文档 。

我能想到的唯一方法就是产生一个child process (比如fork系统调用),然后你可以将stderr的输出“ stdout到文件。

 var out = fs.openSync('./out.log', 'a') , err = fs.openSync('./out.log', 'a'); require('child_process').spawn('./server', [], { detatched : true, stdio : ['ignore', out, err] }); 

你可以通过写入stdout和stderrstream来完成

 process.stdout.write('Hello') 

要么

 process.stderr.write('Error') 

更好的办法是使用像Winston或Bunyan这样的第三方日志模块