1.0.5 • Published 3 years ago

@netease-yunxin/log-storage v1.0.5

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

log-storage的是什么

一个基于 IndexedDB 的本地日志存储工具。

它不包含上传功能,由使用者定义日志的上传,这也保证了它的纯粹和轻量

TODO

日志量变多后的一些问题

  • 分表存储
  • 分批查询

使用方式

const logger = new LogStorage('db_name')

// 打印日志
logger.log('log', '这是一条普通日志')
logger.log('warn', '这是一条警告')
logger.log('error', '这是一条错误')

const now = Date.now()
// 读取日志
logger.get({start: 0, end: now}).then(res => {
  console.log('获取到now之前的日志', res)
  logger.delete({start: 0, end: now}) // 删除日志
})

多业务场景

const imLogger = new LogStorage('db_im')
const wbLogger = new LogStorage('nim-wb')
const meetingLogger = new LogStorage('db_meeting')

imLogger.log('info', 'im业务的一条info日志')
wbLogger.log('warn', '白板业务的一条警告日志')
meetingLogger.log('error', '会议业务的一条错误日志')

const now = Date.now()
imLogger.get({start: 0, end: now}).then(res => console.log('获取IM业务日志'))
wbLogger.get({start: 0, end: now}).then(res => console.log('获取白板业务日志'))
meetingLogger.get({start: 0, end: now}).then(res => console.log('获取会议业务日志'))

注意事项

目前暂未实现数据库分表,数据量太大时查询/更新都会很慢,因此建议expire不要设置的太大,设置一个够用的最小值即可

为什么要写log-storage

  • 将日志存储在用户本地,按需收集

开发流程

目录结构

./demo    测试页代码
./src     源码
./uml     uml时序图

开发中

执行 npm run dev 打开 http://localhost:8090/demo/调试

打包

npm run build后,./dist/index.js即为目标SDK文件

打包后调试

  1. 在工程目录下起静态服务器, 假设端口是8091
  2. 访问http://localhost:8091/demo/调试