UNPKG

meshcentral

Version:

Web based remote computer management server

1 lines 2.29 kB
function parseLine(e){var t,l,s,r=e.match(/^\[.*M\]/);null==r?null!=(r=e.match(/\[.+ => .+:[0-9]+\]/))?(l=r[0].substring(1).match(/(?!.+ ).+(?=:)/),s=r[0].match(/(?!:)[0-9]+(?=\]$)/),t=r[0].match(/(?!\[).+(?= =>)/),null!=l&&(this.results.peek().f=l[0].trim()),null!=s&&(this.results.peek().l=s[0]),null!=t&&(this.results.peek().fn=t[0])):(null!=(r=e.match(/^[\.\/].+\(\) \[0x[0-9a-fA-F]+\]$/))?null!=(r=r[0].match(/(?!\[)0x[0-9a-fA-F]+(?=\]$)/))&&(null==this.results.peek().sx&&(this.results.peek().sx=[]),this.results.peek().sx.unshift(r[0])):null!=(r=e.match(/^\[.+_[0-9a-fA-F]{16}\]$/))&&(r=r[0].match(/(?!_)[0-9a-fA-F]{16}(?=\]$)/),this.results.peek().h=r[0]),null!=(r=e.match(/(?!^=>)\/+.+:[0-9]+$/))&&(null==this.results.peek().s&&(this.results.peek().s=[]),this.results.peek().s.unshift(r[0]))):(s=(l=(r=r[0]).substring(1,r.length-1).split(" "))[1].split(":"),"PM"==l[2]&&(s[0]=parseInt(s[0])+12,24==s[0])&&(s[0]=0),t=Date.parse(l[0]+"T"+s.join(":")),null!=(s=(l=e.substring(r.length).trim()).match(/^\[[0-9a-fA-F]{16}\]/))?(s=s[0].substring(1,s[0].length-1),l=l.substring(s.length+2).trim()):null!=(s=l.match(/^\[\]/))&&(l=l.substring(2).trim(),s=null),e={t:Math.floor(t/1e3),m:l},null!=s&&(e.h=s),null!=(r=l.match(/^.+:[0-9]+ \([0-9]+,[0-9]+\)/))&&(e.m=e.m.substring(r[0].length).trim(),e.f=r[0].match(/^.+(?=:[0-9]+)/)[0],e.l=r[0].match(/(?!:)[0-9]+(?= \([0-9]+,[0-9]+\)$)/)[0]),this.results.push(e))}function readLog_data(e){for(var t=e.toString(),t=(t=null!=this.buffered?this.buffered+t:t).split("\n"),l=0;l<t.length-1;++l)parseLine.call(this,t[l]);1==t.length?(parseLine.call(this,t[0]),this.buffered=null):this.buffered=t[t.length-1]}function readLogEx(e){var t=[];try{var l=require("fs").createReadStream(e);l.buffered=null,l.results=t,l.on("data",readLog_data),l.resume(),null!=l.buffered&&(readLog_data.call(l,l.buffered),l.buffered=null),l.removeAllListeners("data"),l=null}catch(e){}return t}function readLog(e,t){var l=readLogEx(null==t?process.execPath.split(".exe").join("")+".log":t),t=[];if("string"==typeof e)try{var s=Date.parse(e);e=Math.floor(s/1e3)}catch(e){}if("number"==typeof e)if(e<1e3)t=l.slice(l.length-(e>l.length?l.length:e));else{for(var r=0;r<l.length&&l[r].t<=e;++r);t=l.slice(r)}else t=l;return t}module.exports={read:readLog,readEx:readLogEx}