vue實現(xiàn)前端展示后端實時日志帶顏色示例詳解
vue實現(xiàn)前端展示后端帶顏色的日志
需求
通過loki獲取項目產(chǎn)生的日志,并且在前端顯示出來,一開始在沒有經(jīng)過處理的數(shù)據(jù)會顯示一些亂碼,并沒有將字符轉(zhuǎn)換
經(jīng)過一番查詢后,發(fā)現(xiàn)可以使用ansi_up來對日志進(jìn)行操作顏色代碼進(jìn)行轉(zhuǎn)化。
操作
ansi_up
能夠裝換顏色代碼
GitHub地址 https://github.com/drudru/ansi_up
安裝
npm install ansi_up
引入
import {default as AnsiUp} from 'ansi_up';
使用
后端采用loki收集日志
this.logs = res.data.result[0].values
var ansi_up = new AnsiUp()
for (const i in res.data.result[0].values) {
this.logs[i][1] = ansi_up.ansi_to_html(res.data.result[0].values[i][1])
}
渲染
<div v-for="(log, index) in logs" :key="index"> <div v-html="log[1]" style="margin-bottom: 5px; font-size: 16px"></div> </div>
顯示

采用innerHTML例子
需求:
項目是一個管理系統(tǒng),當(dāng)執(zhí)行安裝任務(wù)時,需要把后端安裝過程中的日志推送到前端,前端在頁面上展示實時進(jìn)度,并且與終端顯示的顏色保持一致。
用websocket或者前端設(shè)置定時器的方式,定時去獲取后端的json數(shù)據(jù)比較簡單,比較糾結(jié)的是怎么顯示顏色,方便用戶直觀看到安裝過程中的進(jìn)度,報錯等信息。
后端拿到的json數(shù)據(jù):
可以看到ansi 的顏色代碼就好像亂碼一樣,如果直接展示到頁面上,是不會轉(zhuǎn)換ansi 的顏色代碼,看到的就類似一個普通的txt文本,用戶沒法直觀看到想要的信息。
解決
對ansi 的顏色代碼進(jìn)行轉(zhuǎn)化,輸出在頁面上,需要用到的插件:ansi_up
項目地址:https://github.com/drudru/ansi_up
2.1 安裝
$ npm install ansi_up
2.2 引入
import {default as AnsiUp} from 'ansi_up';
2.3 使用
var ansi_up = new AnsiUp;
var html = ansi_up.ansi_to_html(txt); //調(diào)用ansi_to_html()方法,txt就是從后端拿到的json數(shù)據(jù)
var statusLog= document.getElementById("statusLog"); //statusLog 即是頁面需要展示內(nèi)容的div
statusLog.innerHTML = html;
效果

以上就是vue實現(xiàn)前端展示后端實時日志帶顏色示例詳解的詳細(xì)內(nèi)容,更多關(guān)于vue前端展示后端日志帶顏色的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決vscode?Better?Comments插件在vue文件中不顯示相對應(yīng)的顏色的問題
最近使用了Better?Comments這款插件,發(fā)現(xiàn)在ts文件中可以顯示對應(yīng)的顏色,但在vue文件中并不顯示對應(yīng)顏色?,下面小編給大家分享解決方法,感興趣的朋友跟隨小編一起看看吧2022-09-09
vue如何移動到指定位置(scrollIntoView)親測避坑
這篇文章主要介紹了vue如何移動到指定位置(scrollIntoView)親測避坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
vue 驗證碼界面實現(xiàn)點擊后標(biāo)灰并設(shè)置div按鈕不可點擊狀態(tài)
今天小編就為大家分享一篇vue 驗證碼界面實現(xiàn)點擊后標(biāo)灰并設(shè)置div按鈕不可點擊狀態(tài),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
vue中promise的使用及異步請求數(shù)據(jù)的方法
這篇文章主要介紹了vue中promise的使用及異步請求數(shù)據(jù)的方法,文章給大家較詳細(xì)的介紹了遇到的問題及解決方法,需要的朋友可以參考下2018-11-11
vue實現(xiàn)pdf文件發(fā)送到郵箱功能的示例代碼
這篇文章主要介紹了vue實現(xiàn)pdf文件發(fā)送到郵箱功能,實現(xiàn)代碼包括對郵箱格式內(nèi)容是否為空的驗證方法,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05
vue?contextmenujs鼠標(biāo)右鍵菜單高度不夠顯示不全的問題及解決方法
這篇文章主要介紹了使用vue-contextmenujs鼠標(biāo)右鍵菜單時,當(dāng)高度不夠時顯示不全的問題,大家需要注意本文給提供的解決方案雖然能夠解決現(xiàn)有問題,但是如果組件升級了,想要使用最新升級后的組件,還要再次修改代碼,需要的朋友可以參考下2022-07-07

