本文實(shí)例講述了nodejs實(shí)現(xiàn)日志讀取、日志查找及日志刷新的方法。分享給大家供大家參考,具體如下:
創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務(wù)器托管報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)四川主機(jī)托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。知識要點(diǎn):
下圖為日志讀取的前端呈現(xiàn),日志讀取程序?qū)⑼ㄟ^前端選擇的日志查找時(shí)間和精確度來進(jìn)行查找,也可以進(jìn)行最新日志的刷新獲取和信息反饋,比如說可以告訴用戶自從上次查看過后一共產(chǎn)生了多少條新的日志信息,此程序也做了一定的錯誤處理
本示例使用到的時(shí)間插件可以在我的個人github 上找到
不說太多,上代碼
function readLog(date,type,operation){ //函數(shù)接受3個參數(shù),日期、精度(天時(shí)分秒)和操作(查找、刷新或者默認(rèn)) if(date){ //如果有時(shí)間參數(shù)則對時(shí)間參數(shù)進(jìn)行處理(一般日志名稱都是時(shí)間加類型) var dataStr = arguments[0]; var date = dataStr.slice(0,10); var hour = dataStr.slice(11,13); var minute = dataStr.slice(11,16); var second =dataStr.slice(11,19); var type = arguments[1]; //獲取精度 }else{ //若無時(shí)間參數(shù)則獲取當(dāng)前時(shí)間,然后精度默認(rèn) var date = new Date(+new Date()+8*3600*1000).toISOString().replace(/T/g,' ').replace(/\.[\d]{3}Z/,'').slice(0,10); var type=null; } var op = arguments[2]; var countResult = 0; //對日志結(jié)果進(jìn)行統(tǒng)計(jì) var logPath = appDirName.slice(0,-3)+'log\\'+'ivsvr_'+date+'.log'; //拼接日志文件名稱 var logStr = ''; fs.stat(logPath, function (err, stats) { //獲取對應(yīng)的日志文件狀態(tài) if(err){ //日志不存在或者異常處理信息 $('#logTipInfo tr td').html('無日志信息可供查看'); console.log(err); }else{ var lineCount = 0; var readline = require('readline'); var fReadName = logPath; var fRead = fs.createReadStream(fReadName); var objReadline = readline.createInterface({ input: fRead, }); //按行讀取日志 objReadline.on('line', (line)=>{ var itemStr = $.trim(line); var time = itemStr.slice(0,19); var content = itemStr.substr(20); if(!time || !content){return;} ++ lineCount; //計(jì)數(shù)行數(shù) var matched = true; var itemStr = $.trim(line); var itemArr = itemStr.split(' '); var logDate = itemArr[0]; var logTime = itemArr[1]; var time = logDate+' '+logTime; switch(type){ //進(jìn)度查找過濾 case '0': case null: matched = true; break; case '1': var timeSplit = logTime.slice(0,2); if(timeSplit == hour){ matched = true; break; } matched = false; break; case '2': var timeSplit = logTime.slice(0,5); if(timeSplit == minute){ matched = true; break; } matched = false; break; case '3': var timeSplit = logTime.slice(0,8); if(timeSplit == second){ matched = true; break; } matched = false; break; default: console.log('unkonw type!'); break; } if(matched === true &&(lineCount>logReadFlag)){ //日志結(jié)果格式化輸出呈現(xiàn) countResult ++; var result = itemArr[2]; if(result == 'err'){ var operation = itemArr[4]; result = '失?。?+itemArr[5]+' '+(itemArr[6]?itemArr[6]:''); }else{ var operation = itemArr[4]+' '+itemArr[5]+(itemArr[6]?itemArr[6]:''); result = '成功'; } logStr += '<tr><td>'+time+'</td><td>'+operation+'</td><td>'+result+'</td></tr>' } logStr += '<tr><td>'+time+'</td><td>'+content+'</td></tr>' }); objReadline.on('close', ()=>{ if(logReadFlag == 0 && (logStr == '')){ var info = '無日志信息可供查看'; } if(logReadFlag >0 && (logStr != '')){ var newLogNum = lineCount - logReadFlag; var info = '刷新成功,更新'+newLogNum+'條日志!'; $('#logInfoTable').prepend(logStr); }else if(logReadFlag >0 && (logStr == '')){ var info = '刷新成功,無日志更新!'; }else{ $('#logInfoTable').html(logStr); } if(op == 'search'){ var info = '查找到'+countResult+'條日志'; } $('#logTipInfo tr td').html(info); if((op == 'search' || op == 'refresh') &&(logReadFlag != 0 || newLogNum >0 || countResult >0)){ setTimeout(function() {$('#logTipInfo').fadeOut(567);}, 2000); //操作結(jié)束后給出信息反饋,反饋?zhàn)詣拥鱿? } else{ $('#logTipInfo').hide(); } logReadFlag = lineCount; console.log('closed'); }); } }); }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
本文標(biāo)題:nodejs實(shí)現(xiàn)日志讀取、日志查找及日志刷新的方法分析-創(chuàng)新互聯(lián)
URL標(biāo)題:http://www.rwnh.cn/article20/dpecjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、建站公司、全網(wǎng)營銷推廣、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容