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)
        }
      }
    }
  • 相关阅读:
    wiki iso88591字符表的解释
    [c]字符1一维数组求长度
    vim 用户配置
    PHP中向浏览器输出图片
    如何及时取消 BackgroundWorker 组件的后台工作
    python basic
    php5.1中的时区设置。
    MyBatis的深入原理分析之1架构设计以及实例分析
    hibernate缓存:一级缓存和二级缓存
    Spring 注解(Annotation)代替XML实现零配置
  • 原文地址:https://www.cnblogs.com/brainworld/p/8662288.html
Copyright © 2011-2022 走看看