-
Book Overview & Buying
-
Table Of Contents
Advanced Express Web Application Development
By :
We will now add logging to our application using Winston; let's install Winston:
npm install winston --save
The 404 middleware will need to log 404 not found, so let's create a simple logger module, ./lib/logger/index.js; the details of our logger will be configured with Nconf. We import Winston and the configuration modules. We define our Logger function, which constructs and returns a file logger—winston.transports.File—that we configure using values from our config. We default the loggers maximum size to 1 MB, with a maximum of three rotating files. We instantiate the Logger function, returning it as a singleton.
var winston = require('winston')
, config = require('../configuration');
function Logger(){
return winston.add(winston.transports.File, {
filename: config.get('logger:filename'),
maxsize: 1048576,
maxFiles: 3,
level: config.get('logger:level')
});
}
module.exports = new Logger();Let's add the Logger configuration details to our config files ./config/development.json and ./config/test.json:
{
"express": {
"port": 3000
},
"logger" : {
"filename": "logs/run.log",
"level": "silly",
}
}Let's alter the ./lib/middleware/notFound.js middleware to log errors. We import our logger and log an error message via logger when a 404 Not Found response is thrown:
var logger = require("../logger"); exports.index = function(req, res, next){ logger.error('Not Found'); res.json(404, 'Not Found'); };
Change the font size
Change margin width
Change background colour