forked from mirrors/Scribe.js
Support for streams
This commit is contained in:
parent
2d2274d77a
commit
e4248bb0c9
1 changed files with 20 additions and 19 deletions
39
src/index.js
39
src/index.js
|
@ -5,7 +5,7 @@ var util = require('util')
|
||||||
, moment = require('moment')
|
, moment = require('moment')
|
||||||
, fs = require('fs');
|
, fs = require('fs');
|
||||||
|
|
||||||
var APP_NAME = "Mus.ec";
|
var APP_NAME = "APP_NAME";
|
||||||
var LOG_PATH = "./..";
|
var LOG_PATH = "./..";
|
||||||
var MAIN_USER = "root";
|
var MAIN_USER = "root";
|
||||||
|
|
||||||
|
@ -193,17 +193,11 @@ var logger = function(req, res, next) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var datetemplate = fs.readFileSync(__dirname + "/log.html", { encoding : "utf8"});
|
var datetemplate = fs.readFileSync(__dirname + "/log.html", { encoding : "utf8"});
|
||||||
|
|
||||||
var divRegex = loggers.settings.divider.replace(/([\||\$|\^|\?|\[|\]|\)|\(|\{|\}])/g, '\\$1');
|
|
||||||
var regA = new RegExp('^(.*?)(' + divRegex + ")", 'mg');
|
|
||||||
var regB = new RegExp('^(.*?)' + divRegex + '\\s{0,}\\[(.*?)\\](.*?)$', 'gm')
|
|
||||||
var regC = new RegExp('^(.*?)' + divRegex,'mg');
|
|
||||||
|
|
||||||
var rndColors = [ "#16a085", "#27ae60", "#2980b9", "#8e44ad", "#f39c12", "#d35400", "#c0392b", "#7f8c8d"]
|
var rndColors = [ "#16a085", "#27ae60", "#2980b9", "#8e44ad", "#f39c12", "#d35400", "#c0392b", "#7f8c8d"]
|
||||||
|
|
||||||
var getlog = function(req, res) {
|
var getlog = function(req, res) {
|
||||||
var date = req.param('date');
|
var date = req.param('date');
|
||||||
if(typeof date === 'undefined'){
|
if(typeof date === 'undefined'){
|
||||||
var logs = [];
|
var logs = [];
|
||||||
var path = LOG_PATH + "/log";
|
var path = LOG_PATH + "/log";
|
||||||
fs.readdir(path, function(err, files){
|
fs.readdir(path, function(err, files){
|
||||||
|
@ -223,7 +217,9 @@ var getlog = function(req, res) {
|
||||||
|
|
||||||
return res.send(reponse.replace('CONTENT', files.join(",")).replace('LOGGER_DATES', loggerDates)
|
return res.send(reponse.replace('CONTENT', files.join(",")).replace('LOGGER_DATES', loggerDates)
|
||||||
.replace('LOG_PATH', LOG_PATH)
|
.replace('LOG_PATH', LOG_PATH)
|
||||||
.replace('LOGGER_USERNAME', MAIN_USER));
|
.replace('LOGGER_USERNAME', MAIN_USER)
|
||||||
|
.replace('DIVIDER', loggers.settings.divider)
|
||||||
|
.replace('COLOR_GEN', rndColors[Math.floor(Math.random() * rndColors.length)]));
|
||||||
});
|
});
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -236,17 +232,22 @@ var getlog = function(req, res) {
|
||||||
raw = raw ? true : false;
|
raw = raw ? true : false;
|
||||||
type = type ? type : "log";
|
type = type ? type : "log";
|
||||||
|
|
||||||
fs.readFile(LOG_PATH + "/log/" + date + "/" + MAIN_USER + "/app." + type, 'utf8', function(err, data) {
|
var filepath = LOG_PATH + "/log/" + date + "/" + MAIN_USER + "/app." + type;
|
||||||
if (!err) contents = data;
|
|
||||||
if(raw) return res.send("<pre><code>" + contents + "</code></pre>");
|
|
||||||
|
|
||||||
contents = contents.replace(/ /g, ' ')
|
if(fs.existsSync(filepath)){
|
||||||
contents = contents.replace(regA, '<span class = "log-time">$1</span>$2');
|
var stream = fs.createReadStream(filepath);
|
||||||
contents = contents.replace(regB, '$1<span class = "log-type">$2</span>$3');
|
res.header('Content-length', fs.statSync(filepath)["size"]);
|
||||||
contents = contents.replace(regC, '$1')
|
stream.pipe(res);
|
||||||
contents = contents.replace(/^(.*?)$/mg, '<div class = "log-line">$1</div>')
|
} else{
|
||||||
res.send({ status : 0, data : contents});
|
res.statusCode = 404;
|
||||||
});
|
res.send();
|
||||||
|
}
|
||||||
|
|
||||||
|
// contents = contents.replace(/ /g, ' ');
|
||||||
|
// contents = contents.replace(regA, '<span class = "log-time">$1</span>$2');
|
||||||
|
// contents = contents.replace(regB, '$1<span class = "log-type">$2</span>$3');
|
||||||
|
// contents = contents.replace(regC, '$1');
|
||||||
|
// contents = contents.replace(/^(.*?)$/mg, '<div class = "log-line">$1</div>');
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.init = overload;
|
exports.init = overload;
|
||||||
|
|
Loading…
Add table
Reference in a new issue