Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var config = require('./config')
- var http = require('http'),
- format = require('util').format,
- url = require('url'),
- db = require('mongoskin').db(config.mongo['host'] + ':' + config.mongo['port'] + '/company_logs?auto_reconnect=true' , {safe:true});
- //var emitter = require('events').EventEmitter();
- //emitter.setMaxListeners(100);
- process.on('uncaughtException', function(err) {
- console.log('Caught exception: ' + err);
- process.exit(1);
- });
- var UAParser = require('ua-parser-js');
- var parser = new UAParser();
- var logger = require('./logger');
- logger.debugLevel = 'warn';
- logger.log('info', 'Everything started properly.');
- logger.log('warn', 'Running out of memory...');
- logger.log('error', { error: 'flagrant'});
- var handleFavicon = function (req, res) {
- res.writeHead(200, {'Content-Type': 'image/x-icon'} );
- res.end();
- console.log('favicon requested');
- return;
- };
- var insertErrorLog = function (req, res) {
- var pathname = url.parse(req.url).pathname;
- var ua = req.headers['user-agent']; // user-agent header from an HTTP request
- var details = parser.setUA(ua).getResult();
- var params = url.parse(req.url,true).query;
- req.collection = db.collection('logs');
- req.collection.insert({
- 'category' : params.category,
- 'event' : params.event,
- 'data' : params.data,
- 'type': params.type,
- 'timestamp': new Date(),
- 'browserName': details.browser['name'],
- 'browserVersion': details.browser['version'],
- 'osName': details.os['name'],
- 'osVersion': details.os['version'],
- 'ip': req.connection.remoteAddress,
- 'referer': req.headers['Referer'],
- 'userAgent': ua
- }, function(err, doc){
- res.end('Data Inserted\n');
- });
- };
- var notFound = function (req, res) {
- res.writeHead(400, {});
- res.end("<h1>404 - Not Found</h1>");
- console.log('404 - Not Found');
- return;
- };
- // error_logs
- var app = http.createServer(function (req, res) {
- res.writeHead(200, {'Content-Type': 'text/plain'});
- if (req.url === '/favicon.ico') {
- return handleFavicon(req, res);
- }
- if (req.url.indexOf('/company_logs') >= 0) {
- return insertErrorLog(req, res);
- }
- return notFound(req, res);
- }).listen(5000);
- app.setMaxListeners(0);
- console.log('Server running at localhost:5000/');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement