0.0.7 • Published 6 months ago

epg-devlog v0.0.7

Weekly downloads
-
License
ISC
Repository
-
Last release
6 months ago

epg本地调试日志上报服务

1. 概述

在开发epg项目过程中,我们之前希望看到程序运行的情况,会在界面创建一个div标签浮在界面最顶层,用于显示调试信息。但是随着项目的发展,这个调试信息越来越复杂,需要显示的信息越来越多,导致这个div标签越来越大,查看调试信息变的更加困难。因此,我们决定将调试信息输出到服务器,通过浏览器访问服务器查看调试信息。

2. 介绍

epg-devlog是集前后端服务为一体的日志服务,通过浏览器访问本地启动的服务器地址,可以查看上报日志。并对可以对上报的数据进行筛选、排序、搜索、标记等操作。

3. 使用

3.1. 环境准备

  • mySQL 8.0+
  • node.js V20+

3.2. 下载代码

  • npm i epg-devlog -g

3.3. 指令执行

#  配置mysql基础信息,按提示根据你自己本地的mysql进行配置
   epg-devlog-setMysqlConfig

mysql配置成功后,注意配置的数据库需确保你本地mysql已手动创建,而数据库的表则不用,epg-devlog会自动创建。

#  启动服务
    epg-devlog start

3.4. 使用

在epg项目中,定义一个devLog方法,具体根据项目框架来定义,如某历史项目中:

/** 本地epg-devtool服务 */
var MOINTOR_BASE_URL = 'https://5qxjve-ip-58-42-244-88.tunnelmole.net' // 本地调试内网穿透地址
var notSupportReportStbs = ["CM201-1-CH"]
var openLocalDev = true; // 是否开启本地调试
/**
 * 字符串化数据 补充JSON.stringify
 * @param {object} data 需要stringify的数据
 * @returns 
 */
var stringifyData = function (data) {
  return JSON.stringify(data, function (_key, value) {
    if (typeof value === "function") {
      return value.toString();
    } else if (typeof value === "undefined") {
      return "undefined";
    } else if (value === null) {
      return "null";
    } else {
      return value;
    }
  })
}
/**
 * 测试环境本地调试日志上报
 * @param {object | string} data 上报的数据
 * @param {string?} tip 提示信息
 * @param {string?} type 上报类型  info: 一般打印信息  warn:警告  error:报错   debug:调试 
 */

var devLog = function (data, tip, type) {
  if (!openLocalDev) return;
  if (MOINTOR_BASE_URL) {
    data === undefined && (data = "undefined");
    data === null && (data = "null");
    var reportData = { reportJson: data, tip: tip || "", type: type || 'info' };
    XEpg.Util.ajaxPostByJson(MOINTOR_BASE_URL + "/reportEpgLog", stringifyData(reportData), function(){})
  } else if (log_view && data) {
    var logType = {
      info: 'i',
      warn: 'w',
      error: 'e',
    }
    log_view(logType[type] || 'i', typeof data === 'string' ? data : stringifyData(data));
  }
}

日志上报成功后,可在浏览器上打开本地上报地址,便可对收集到的数据进行查看,但目前对于一些盒子存在异常,本服务更适合用于对数据的抓取,而异常盒子则建议使用log_view进行日志上报。 上报的接口为:/reportEpgLog 请求方式: post 入参: - reportJson : 上报的数据 - tip : 提示信息 - type : 上报类型 info: 一般打印信息 warn:警告 error:报错 debug:调试 - isMarked : 是否标记

todo

  • 全局指令
  • 一键清除选中项
  • tip\type\reportJson列筛选
  • 一键清空所有数据
  • [] 标记功能
  • [] 置顶功能
  • [] 优化前端设计,用户可自行配置交互行为
  • [] 用户可自行配置表格显示的列
  • [] 增加将字符串输入转为json的便捷功能
  • [] 增加实时日志功能socket
  • [] 全局安装该仓库时,执行start时,server子包类的模块依赖找不到,应该需要用pnpm进行全局安装,但pnpm全局安装不了,有问题暂未解决
0.0.3

6 months ago

0.0.2

6 months ago

0.0.5

6 months ago

0.0.4

6 months ago

0.0.7

6 months ago

0.0.6

6 months ago

0.0.1

6 months ago