diff --git a/loader.js b/loader.js index cbb1a79586..6320c6ab6a 100644 --- a/loader.js +++ b/loader.js @@ -7,6 +7,7 @@ var path = require('path'); var fork = require('child_process').fork; var async = require('async'); var logrotate = require('logrotate-stream'); +var mkdirp = require('mkdirp'); var file = require('./src/file'); var pkg = require('./package.json'); @@ -18,7 +19,14 @@ nconf.argv().env().file({ }); var pidFilePath = path.join(__dirname, 'pidfile'); -var outputLogFilePath = path.join(__dirname, 'logs/output.log'); + +var outputLogFilePath = path.join(__dirname, nconf.get('logFile') || 'logs/output.log'); + +var logDir = path.dirname(outputLogFilePath); +if (!fs.existsSync(logDir)) { + mkdirp.sync(path.dirname(outputLogFilePath)); +} + var output = logrotate({ file: outputLogFilePath, size: '1m', keep: 3, compress: true }); var silent = nconf.get('silent') === 'false' ? false : nconf.get('silent') !== false; var numProcs;