cat2log
Version:
Easy-to-user log file package
280 lines (230 loc) • 7.69 kB
JavaScript
module.exports = {
version: "0.1.3",
config: {
path_default: "./",
path_md: "./",
path_txt: "./",
path_json: "./",
name_file_default: "default.log",
name_file_md: "default.log.md",
name_file_txt: "default.log",
name_file_json: "default.log.json",
date: true,
local_time: "en-US",
use_unknown_status: false,
status: ['Unknown', 'Resuming', 'Pause', 'Up', 'Down', 'Broken', 'Warning', 'OK', 'Connected', 'Disconnected', 'info', 'Stop', 'Start']
},
txt: {
add: function (TAG, STATUS, txt, callback) {
if (!module.exports.util.checkStatus(STATUS)) {
return "Error Status not found, you maybe should use use_unknown_status";
}
if (module.exports.config.date == true) {
var str = "[ " + new Date().toUTCString() + " ]";
} else {
var str = "";
}
str += " ["+TAG+"] " + "["+STATUS+"] " + txt;
module.exports.txt.append(str, callback);
}, // end add
append: function (str, callback) {
if (module.exports.txt.checkFile()) {
var fs = require('fs');
fs.appendFile(module.exports.util.getFullFilePath('txt'), str + "\n", function () {
if (callback !== undefined ) {
callback(true);
} else {
return true;
}
});
} else {
if (callback !== undefined ) {
callback(false);
} else {
return false;
}
}
}, // end append
checkFile: function () {
var fs = require('fs');
if (fs.existsSync(module.exports.util.getFullFilePath('txt'))) {
return true
} else {
//init the file
var file = "";
fs.writeFileSync(module.exports.util.getFullFilePath('txt'), file, 'utf-8');
return true
}
} // end checkFile
}, // end TXT
json: {
add: function (object, callback) {
if (!module.exports.util.checkStatus(object.status)) {
return "Error Status not found, you maybe should use use_unknown_status";
}
if (module.exports.config.date == true) {
object.date = new Date().toUTCString();
}
module.exports.json.append(object, callback);
}, // end add
append: function (object, callback) {
var fs = require('fs');
if (module.exports.json.checkFile()) {
var file = JSON.parse(fs.readFileSync(module.exports.util.getFullFilePath('json'), 'utf-8'));
file[file.length] = object;
fs.writeFileSync(module.exports.util.getFullFilePath('json'), JSON.stringify(file, null, 4), 'utf-8');
if (callback !== undefined ) {
callback(true);
} else {
return true;
}
} else {
if (callback !== undefined ) {
callback(false);
} else {
return false;
}
}
}, // end append
checkFile: function () {
var fs = require('fs');
if (fs.existsSync(module.exports.util.getFullFilePath('json'))) {
return true
} else {
var file = [];
fs.writeFileSync(module.exports.util.getFullFilePath('json'), JSON.stringify(file, null, 4), 'utf-8');
return true
}
} // end checkFile
}, // end json
md: {
add :function (TAG, STATUS, txt, callback) {
if (!module.exports.util.checkStatus(STATUS)) {
return "Error Status not found, you maybe should use use_unknown_status";
}
if (module.exports.config.date == true) {
var str = "| " + new Date().toUTCString() + "";
} else {
var str = "";
}
str += "| __"+TAG+"__ | *"+STATUS+"* | " + txt + " |";
module.exports.md.append(str, callback);
}, // end add
append: function (md_str, callback) {
var fs = require('fs');
if (module.exports.md.checkFile()) {
fs.appendFile(module.exports.util.getFullFilePath('md'), md_str + "\n", function () {
if (callback !== undefined ) {
callback(true);
} else {
return true;
}
});
} else {
if (callback !== undefined ) {
callback(false);
} else {
return false;
}
}
}, // end append
checkFile: function () {
var fs = require('fs');
if (fs.existsSync(module.exports.util.getFullFilePath('md'))) {
return true
} else {
var file = "| Date | TAG | STATUS | Info | \n";
file += "| :---:| :--: | ----: | :--: | \n";
fs.writeFileSync(module.exports.util.getFullFilePath('md'), file, 'utf-8');
return true
}
} // end checkFile
}, // end markdown
all: {
add: function (TAG, STATUS, txt, callback) {
if (!module.exports.util.checkStatus(STATUS)) {
return "Error Status not found, you maybe should use use_unknown_status";
}
var o = {
tag : TAG,
status: STATUS,
info: txt
}
module.exports.txt.add(TAG, STATUS, txt, function (result) {
module.exports.md.add(TAG, STATUS, txt, function (result) {
module.exports.json.add(o, function (result) {
if (callback !== undefined ) {
callback(result);
} else {
return result;
}
});
});
});
} // end add
}, // end all
util: {
checkStatus: function (status) {
if (module.exports.config.use_unknown_status == true) {
return true;
}
var s = module.exports.config.status;
for (var i = 0; i < s.length; i++) {
if (s[i] == status) {
return true
}
}
return false
}, // end checkStatus
getFullFilePath: function (type) {
switch (type) {
case 'json':
var path = module.exports.config.path_json;
var name = module.exports.config.name_file_json;
return path + name;
case 'txt':
var path = module.exports.config.path_txt;
var name = module.exports.config.name_file_txt;
return path + name;
case 'md':
var path = module.exports.config.path_md;
var name = module.exports.config.name_file_md;
return path + name;
case 'default':
var path = module.exports.config.path_default;
var name = module.exports.config.name_file_default;
return path + name;
default:
return false;
}
}, // end getFullFilePath
getFilePath: function (type) {
switch (type) {
case 'json':
return module.exports.config.path_json;
case 'txt':
return module.exports.config.path_txt;
case 'md':
return module.exports.config.path_md;
case 'default':
return module.exports.config.path_default;
default:
return false;
}
}, // end getFilePath
getFileName: function (type) {
switch (type) {
case 'json':
return module.exports.config.file_name_json;
case 'txt':
return module.exports.config.file_name_txt;
case 'md':
return module.exports.config.file_name_md;
case 'default':
return module.exports.config.file_name_default;
default:
return false;
}
} // end getFileName
} // end util
}