Logging stdout and stderr of Node

raju picture raju · May 26, 2014 · Viewed 39.3k times · Source

I am using the boilerplate code of mean.io and starting my server with the command:

node server.js

How do I log stdout and stderr of my Express application?

Here's my file 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;

Answer

Steel Brain picture Steel Brain · Dec 20, 2014

What about this?

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

Note: both of these functions automatically add new line to your input.

If you don't want those newlines appended to your input, do this

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

Both process.stdout and process.stderr are streams, so you can even pipe a stream into them. See Node.js docs on streams for more info.