Morgan outputs requests directly to the console.
How can I redirect them to npm debug so that it follows the same format as the other stuff which is being logged?
My debug.js
config looks like the following:
import debug from 'debug';
const LOG_PREFIX = 'api';
const info = debug(`${LOG_PREFIX}:info`);
const dev = debug(`${LOG_PREFIX}:dev`);
const error = debug(`${LOG_PREFIX}:error`);
export {
info,
dev,
error,
};
And I currently log other stuff like:
import { info } from './debug';
info('App is up and running!');
My current morgan call is:
app.use(morgan('combined'));
when using morgan ˋstreamˋ combined with ˋdebugˋ, it´s best to do:
The reason: morgan add a new line at the end of the msg when calling the
stream.write(...)
function.Morgan accepts an optional parameter which is the stream.
By default it points to
process.stdout
, the console.Since what it does it to call
stream.write
, you can easily build a quick stream which redirects to yourdebug
.Generically (but still ES6), that would be:
ES5: