JavaScript:
Writing to standard error
How to:
In Node.js, writing to stderr can be accomplished using the console.error()
method or by writing directly to process.stderr
. Here are examples demonstrating both approaches:
// Using console.error()
console.error('This is an error message.');
// Directly writing to process.stderr
process.stderr.write('This is another error message.\n');
Sample output for both methods would appear in the stderr stream, not mingling with stdout:
This is an error message.
This is another error message.
For more sophisticated or application-specific logging, many JavaScript programmers use third-party libraries like winston
or bunyan
. Here’s a quick example using winston
:
First, install winston
via npm:
npm install winston
Then, configure winston
to log errors to stderr:
const winston = require('winston');
const logger = winston.createLogger({
levels: winston.config.syslog.levels,
transports: [
new winston.transports.Console({
stderrLevels: ['error']
})
]
});
// Logging an error message
logger.error('Error logged through winston.');
This setup ensures that when you log an error using winston
, it directs to stderr, helping maintain clear separation between standard and error outputs.