mirror of
https://github.com/mathew-kurian/Scribe.js
synced 2025-09-01 22:41:26 +00:00
Attach rootPath to the instance after checking if already in use
This commit is contained in:
parent
ed3c0f5e1c
commit
cc7479eb9c
2 changed files with 37 additions and 34 deletions
|
@ -60,6 +60,14 @@
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* rootPaths
|
||||||
|
*
|
||||||
|
* Store all rootPaths
|
||||||
|
* @type {Array}
|
||||||
|
*/
|
||||||
|
var rootPaths = [];
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LogWriter
|
* LogWriter
|
||||||
|
@ -67,15 +75,26 @@
|
||||||
* Save console logs on disk
|
* Save console logs on disk
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
|
*
|
||||||
|
* @param {String} rootPath root logs folder
|
||||||
*/
|
*/
|
||||||
var LogWriter = function () {};
|
var LogWriter = function (rootPath) {
|
||||||
|
|
||||||
|
this.rootPath = rootPath || 'logs';
|
||||||
|
|
||||||
|
//Check if the folder is already in use
|
||||||
|
if (rootPaths.indexOf(this.rootPath) > -1) {
|
||||||
|
throw new Error('Folder ' + this.rootPath + ' already in use');
|
||||||
|
} else {
|
||||||
|
rootPaths.push(this.rootPath);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LogWriter.prototype.getPath
|
* LogWriter.prototype.getPath
|
||||||
*
|
*
|
||||||
* @param {Object} opt params
|
* @param {Object} opt params
|
||||||
* @param {String} opt.rootPath root logs folder
|
* @param {String} opt.logger logger options
|
||||||
* @param {String} opt.logger logger options
|
|
||||||
*
|
*
|
||||||
* @return {String} The path to current folder (without rootPath)
|
* @return {String} The path to current folder (without rootPath)
|
||||||
*/
|
*/
|
||||||
|
@ -93,8 +112,7 @@
|
||||||
* LogWriter.prototype.getFile
|
* LogWriter.prototype.getFile
|
||||||
*
|
*
|
||||||
* @param {Object} opt params
|
* @param {Object} opt params
|
||||||
* @param {String} opt.rootPath root logs folder
|
* @param {String} opt.logger logger options
|
||||||
* @param {String} opt.logger logger options
|
|
||||||
*
|
*
|
||||||
* @return {String} the filname (with extension)
|
* @return {String} the filname (with extension)
|
||||||
*/
|
*/
|
||||||
|
@ -112,14 +130,13 @@
|
||||||
* LogWriter.prototype.path
|
* LogWriter.prototype.path
|
||||||
*
|
*
|
||||||
* @param {Object} opt params
|
* @param {Object} opt params
|
||||||
* @param {String} opt.rootPath root logs folder
|
* @param {String} opt.logger logger options
|
||||||
* @param {String} opt.logger logger options
|
|
||||||
*
|
*
|
||||||
* @return {String} the full path to file
|
* @return {String} the full path to file
|
||||||
*/
|
*/
|
||||||
LogWriter.prototype.path = function (opt) {
|
LogWriter.prototype.path = function (opt) {
|
||||||
return path.join(
|
return path.join(
|
||||||
opt.rootPath,
|
this.rootPath,
|
||||||
this.getPath(opt),
|
this.getPath(opt),
|
||||||
this.getFile(opt)
|
this.getFile(opt)
|
||||||
);
|
);
|
||||||
|
@ -133,7 +150,6 @@
|
||||||
* @param {Object} log The log to save
|
* @param {Object} log The log to save
|
||||||
*
|
*
|
||||||
* @param {Object} opt Options
|
* @param {Object} opt Options
|
||||||
* @param {String} opt.rootPath root logs folder
|
|
||||||
* @param {String} opt.logger logger options
|
* @param {String} opt.logger logger options
|
||||||
*/
|
*/
|
||||||
LogWriter.prototype.save = function (log, opt) {
|
LogWriter.prototype.save = function (log, opt) {
|
||||||
|
@ -155,12 +171,10 @@
|
||||||
* Save logger opt in root folder
|
* Save logger opt in root folder
|
||||||
*
|
*
|
||||||
* @param {Object} logger Logger options.
|
* @param {Object} logger Logger options.
|
||||||
* @param {Object} opt LogWriter options
|
|
||||||
* @param {String} opt.rootPath Logs folder
|
|
||||||
*/
|
*/
|
||||||
LogWriter.prototype.saveOpt = function (logger, opt) {
|
LogWriter.prototype.saveOpt = function (logger) {
|
||||||
|
|
||||||
var filePath = path.join(opt.rootPath, logger.name + '.json');
|
var filePath = path.join(this.rootPath, logger.name + '.json');
|
||||||
|
|
||||||
writeFile(filePath, JSON.stringify(logger), function (err) {
|
writeFile(filePath, JSON.stringify(logger), function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|
31
scribe.js
31
scribe.js
|
@ -48,22 +48,14 @@
|
||||||
* Save logs and options.
|
* Save logs and options.
|
||||||
*
|
*
|
||||||
* @param {Console2} console2 A Console2 instance
|
* @param {Console2} console2 A Console2 instance
|
||||||
* @param {Object} opt LogWriter options
|
|
||||||
* @param {LogWriter} logWriter A LogWriter instance
|
* @param {LogWriter} logWriter A LogWriter instance
|
||||||
*/
|
*/
|
||||||
var listenOnConsole = function (console2, opt, logWriter) {
|
var listenOnConsole = function (console2, logWriter) {
|
||||||
|
|
||||||
if (logsFolder.indexOf(opt.rootPath || scribeOpt.rootPath) > -1) {
|
|
||||||
throw new Error('Folder ' + (opt.rootPath || scribeOpt.rootPath) + ' already in use');
|
|
||||||
} else {
|
|
||||||
logsFolder.push(opt.rootPath || scribeOpt.rootPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
//On new log, save it
|
//On new log, save it
|
||||||
console2.on('new', function (log) {
|
console2.on('new', function (log) {
|
||||||
|
|
||||||
logWriter.save(log, {
|
logWriter.save(log, {
|
||||||
rootPath : opt.rootPath || scribeOpt.rootPath,
|
|
||||||
logger : log.opt
|
logger : log.opt
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -72,27 +64,20 @@
|
||||||
//On new logger, save its options
|
//On new logger, save its options
|
||||||
console2.on('newLogger', function (logger, loggerOpt) {
|
console2.on('newLogger', function (logger, loggerOpt) {
|
||||||
|
|
||||||
logWriter.saveOpt(loggerOpt, {
|
logWriter.saveOpt(loggerOpt);
|
||||||
rootPath : opt.rootPath || scribeOpt.rootPath
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//Create a default console2 and attach it to process
|
||||||
if (scribeOpt.createDefaultConsole) {
|
if (scribeOpt.createDefaultConsole) {
|
||||||
|
|
||||||
//Create a default console2 and attach it to process
|
|
||||||
process.console = new Console2();
|
process.console = new Console2();
|
||||||
|
|
||||||
logsFolder.push(scribeOpt.rootPath);
|
|
||||||
|
|
||||||
listenOnConsole(
|
listenOnConsole(
|
||||||
process.console,
|
process.console,
|
||||||
{
|
new LogWriter(scribeOpt.rootPath)
|
||||||
rootPath : scribeOpt.rootPath
|
|
||||||
},
|
|
||||||
new LogWriter()
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,10 +104,14 @@
|
||||||
|
|
||||||
if (config.logWriter !== false) { //if config.logWriter is false, don't save logs
|
if (config.logWriter !== false) { //if config.logWriter is false, don't save logs
|
||||||
|
|
||||||
|
var rootPath = config.logWriter
|
||||||
|
? config.logWriter.rootPath || scribeOpt.rootPath
|
||||||
|
: scribeOpt.rootPath
|
||||||
|
;
|
||||||
|
|
||||||
listenOnConsole(
|
listenOnConsole(
|
||||||
console,
|
console,
|
||||||
config.logWriter || {},
|
logWriter || new LogWriter(rootPath)
|
||||||
logWriter || new LogWriter()
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue