vue处理后端返回的日志

vue处理后端返回的日志,并保持日志内容最新(滚动到最新内容)
1、后端返回的日志格式如下所示,该如何处理成正常的文本换行
在这里插入图片描述

2、在获取日志的接口中做如下处理,把返回的/n替换成换行标签,并根据任务状态判断日志是否需要轮询

getLogInfo(id) {
   this.$axios
     .get(`/ai/train/logs/${id}`)
      .then((res) => {
          if (res.data.code == 200) {
              this.logText = "";
              if (res.data.data) {
                 res.data.data.forEach((item) => {
                    this.logText += item.replace(/\n/g, "<br/>");
                 });
              if ( this.modelInfo.status == 0 ) {
                this.startPolling();
              } else {
                this.endPolling();
              }              
              this.scrollToBottom();
         } else {
           this.logText = "暂无日志信息";
         }
    }
})

3、在html中使用,为标签设置v-html

<div class="log-box-content-text" v-html="logText" id="logCon"></div>

4、轮询日志,一般日志是需要实时更新的,所以需要根据任务状态轮询日志

startPolling() {
    this.pollTimer = setTimeout(() => {
        this.getLogInfo(this.id);
    }, 5000);
},
endPolling() {
    clearInterval(this.pollTimer);
},

5、滚动条保持最底部方法,在获取日志的接口调用

    scrollToBottom() {
      this.$nextTick(() => {
        var container = document.querySelector("#logCon");
        container.scrollTop = container.scrollHeight;
      });
    },

轮询相关资源:vue中数据状态轮询

您可以使用Vue.js和Python Flask框架来实现前后端交互。您需要使用Vue.js的Axios库来发送HTTP请求到Python Flask后端,并使用Flask的路由来处理这些请求。在Flask中,您可以使用Python的logging模块来记录操作日志,并将这些日志返回Vue.js前端。以下是一个简单的示例代码Vue.js前端代码: ``` <template> <div> <button @click="getLogs">获取操作日志</button> <ul> <li v-for="log in logs" :key="log.id">{{ log.message }}</li> </ul> </div> </template> <script> import axios from 'axios'; export default { data() { return { logs: [], }; }, methods: { async getLogs() { const response = await axios.get('/logs'); this.logs = response.data.logs; }, }, }; </script> ``` Python Flask后端代码: ``` from flask import Flask, jsonify import logging app = Flask(__name__) # 设置日志记录器 logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) handler = logging.FileHandler('logs.log') handler.setLevel(logging.INFO) formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) # 路由处理函数 @app.route('/logs') def get_logs(): logs = [] with open('logs.log', 'r') as f: for line in f: logs.append({'id': len(logs) + 1, 'message': line.strip()}) return jsonify({'logs': logs}) if __name__ == '__main__': app.run() ``` 在这个示例中,我们使用了Vue.js的Axios库来发送GET请求到Flask后端的/logs路由。在Flask中,我们使用Python的logging模块来记录操作日志,并将这些日志返回Vue.js前端。注意,我们在Flask中设置了一个FileHandler来将日志记录到文件中。您可以根据需要更改日志记录器的设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值