From 5db24fbe68b40c7d209eee617e3b02ee931205d1 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Fri, 3 Oct 2014 16:31:53 -0400 Subject: [PATCH] closes #2175 --- src/controllers/admin.js | 14 ++++++++++++++ src/database/mongo.js | 8 +++++++- src/routes/admin.js | 1 + src/socket.io/admin.js | 17 +++++++++++++---- src/views/admin/advanced/log.tpl | 30 ++++++++++++++++++++++++++++++ src/views/admin/header.tpl | 1 + 6 files changed, 66 insertions(+), 5 deletions(-) create mode 100644 src/views/admin/advanced/log.tpl diff --git a/src/controllers/admin.js b/src/controllers/admin.js index 10c852a74d..8f007c7783 100644 --- a/src/controllers/admin.js +++ b/src/controllers/admin.js @@ -28,6 +28,7 @@ var adminController = { widgets: {} }, events: {}, + logs: {}, database: {}, plugins: {}, languages: {}, @@ -172,6 +173,19 @@ adminController.events.get = function(req, res, next) { }); }; +adminController.logs.get = function(req, res, next) { + var logPath = path.join('logs', path.sep, 'output.log'); + fs.readFile(logPath, function(err, data) { + if (err || !data) { + data = ''; + } + + res.render('admin/advanced/log', { + data: data.toString() + }); + }); +}; + adminController.plugins.get = function(req, res, next) { plugins.getAll(function(err, plugins) { if (err || !Array.isArray(plugins)) { diff --git a/src/database/mongo.js b/src/database/mongo.js index bed8f542b7..253fd78fbe 100644 --- a/src/database/mongo.js +++ b/src/database/mongo.js @@ -53,7 +53,13 @@ winston.error('Unable to initialize MongoDB! Is MongoDB installed? Error :' + err.message); process.exit(); } - var connString = 'mongodb://'+ nconf.get('mongo:host') + ':' + nconf.get('mongo:port') + '/' + nconf.get('mongo:database'); + + var usernamePassword = ''; + if (nconf.get('mongo:username') && nconf.get('mongo:password')) { + usernamePassword = nconf.get('mongo:username') + ':' + nconf.get('mongo:password') + '@'; + } + + var connString = 'mongodb://' + usernamePassword + nconf.get('mongo:host') + ':' + nconf.get('mongo:port') + '/' + nconf.get('mongo:database'); var connOptions = { server: { poolSize: nconf.get('mongo:poolSize') || 10 diff --git a/src/routes/admin.js b/src/routes/admin.js index 104f6c40f3..ab2d3c14b1 100644 --- a/src/routes/admin.js +++ b/src/routes/admin.js @@ -64,6 +64,7 @@ function addRoutes(router, middleware, controllers) { router.get('/advanced/database', controllers.admin.database.get); router.get('/advanced/events', controllers.admin.events.get); + router.get('/advanced/logs', controllers.admin.logs.get); router.get('/development/logger', controllers.admin.logger.get); } diff --git a/src/socket.io/admin.js b/src/socket.io/admin.js index 17bc3d0e20..108356465b 100644 --- a/src/socket.io/admin.js +++ b/src/socket.io/admin.js @@ -1,6 +1,12 @@ "use strict"; -var groups = require('../groups'), +var async = require('async'), + winston = require('winston'), + cluster = require('cluster'), + fs = require('fs'), + path = require('path'), + + groups = require('../groups'), meta = require('../meta'), plugins = require('../plugins'), widgets = require('../widgets'), @@ -11,10 +17,8 @@ var groups = require('../groups'), events = require('../events'), emailer = require('../emailer'), db = require('../database'), - async = require('async'), - winston = require('winston'), index = require('./index'), - cluster = require('cluster'), + SocketAdmin = { user: require('./admin/user'), @@ -232,4 +236,9 @@ function getHourlyStatsForSet(set, hours, callback) { }); } +SocketAdmin.clearLog = function(socket, data, callback) { + var logPath = path.join('logs', path.sep, 'output.log'); + fs.truncate(logPath, callback); +}; + module.exports = SocketAdmin; diff --git a/src/views/admin/advanced/log.tpl b/src/views/admin/advanced/log.tpl new file mode 100644 index 0000000000..7b396e003d --- /dev/null +++ b/src/views/admin/advanced/log.tpl @@ -0,0 +1,30 @@ +
+
+
+
Logs
+
+
{data}
+
+
+
+
+ +
+
+
+ +
+
+
+ + Advanced
  • Database
  • Events
  • +
  • Logs