zoukankan      html  css  js  c++  java
  • 前端打印日志到localStroge并导出

    interface LogEntry {
      data: any
      time: Date
    }
    export class PersistantLog {
      //最大条数
      maxEntries = 3000;
      isEnabled = false;
      name = "default_log";
      localStorage = window.localStorage;
      entries: LogEntry[] = JSON.parse(this.localStorage.getItem(this.name));
      constructor() {
        this.isEnabled = true;
      }
     
      public log(info: any) {
        if (!this.isEnabled) return;
        this.entries.push({
          time: new Date(),
          data: info
        })
        this.save();
      }
     
      public enable() {
        this.isEnabled = true;
      }
     
      private save() {
        this.entries = this.entries.slice(-this.maxEntries)
        let data = JSON.stringify(this.entries)
        this.localStorage.setItem(this.name, data)
      }
     
      public clear() {
        this.localStorage.removeItem(this.name);
      }
      
      private getEntries() {
        return this.entries
      }
     
      public exportLog(exportFileName: string) {
        let resultStr = this.localStorage.getItem(this.name)
        //将文本或者JS字符串信息借助Blob转换成二进制,然后,
        //作为<a>元素的href属性,配合download属性,实现下载
        if ("download" in document.createElement("a")) {
          let eleLink = document.createElement("a")
          eleLink.download = exportFileName + ".json"
          eleLink.style.display = "none"
          let blob = new Blob([resultStr])
          eleLink.href = URL.createObjectURL(blob)

          //兼容firefox,元素添加到页面才能触发点击
          document.body.appendChild(eleLink)
          eleLink.click()
          document.body.removeChild(eleLink)
        }
      }
    }
  • 相关阅读:
    kafka consumer防止数据丢失(转)
    Cglib源码分析 invoke和invokeSuper的差别(转)
    如何查看k8s存在etcd中的数据(转)
    k8s Nodeport方式下service访问,iptables处理逻辑(转)
    项目演化系列--验证体系
    项目演化系列--路由解析
    项目演化系列--开篇
    基于SWFUpload的angular上传组件
    Query Object--查询对象模式(下)
    Query Object--查询对象模式(上)
  • 原文地址:https://www.cnblogs.com/brainworld/p/8662288.html
Copyright © 2011-2022 走看看