All Projects → alexayan → Sentry Mina

alexayan / Sentry Mina

Licence: bsd-3-clause
小程序 Sentry SDK

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to Sentry Mina

Sentry
Sentry is cross-platform application monitoring, with a focus on error reporting.
Stars: ✭ 29,700 (+23851.61%)
Mutual labels:  sentry
Sentry Wizard
Sentry Project Setup Wizard
Stars: ✭ 78 (-37.1%)
Mutual labels:  sentry
Magento2 Sentry
Magento 2 module to log to Sentry
Stars: ✭ 99 (-20.16%)
Mutual labels:  sentry
Sentry Cordova
The official Sentry SDK for Cordova
Stars: ✭ 49 (-60.48%)
Mutual labels:  sentry
Apollo Link Sentry
Apollo Link middleware which enriches SentryJS with GraphQL data
Stars: ✭ 63 (-49.19%)
Mutual labels:  sentry
Ember Cli Sentry
Error tracking via Sentry for Ember.js apps
Stars: ✭ 81 (-34.68%)
Mutual labels:  sentry
React Raven
A simple React component for Sentry integration.
Stars: ✭ 12 (-90.32%)
Mutual labels:  sentry
Sentry Php
The official PHP SDK for Sentry (sentry.io)
Stars: ✭ 1,591 (+1183.06%)
Mutual labels:  sentry
Sentry Clj
Sentry SDK for Clojure
Stars: ✭ 63 (-49.19%)
Mutual labels:  sentry
Raven.cr
Raven is a Crystal client for Sentry
Stars: ✭ 96 (-22.58%)
Mutual labels:  sentry
Api server boilerplate
typescript express board boilerplate using routing controller
Stars: ✭ 52 (-58.06%)
Mutual labels:  sentry
Sentry
Bruteforce attack blocker (ssh, FTP, SMTP, and more)
Stars: ✭ 58 (-53.23%)
Mutual labels:  sentry
Myapp
React Native 工程实践
Stars: ✭ 83 (-33.06%)
Mutual labels:  sentry
Sentry React Native
Official Sentry SDK for react-native
Stars: ✭ 1,032 (+732.26%)
Mutual labels:  sentry
Logrus
Hooks for logrus logging
Stars: ✭ 110 (-11.29%)
Mutual labels:  sentry
Sentry Python
The new Python SDK for Sentry.io
Stars: ✭ 870 (+601.61%)
Mutual labels:  sentry
Nestjs Sentry
Provides an injectable sentry.io client to provide enterprise logging nestjs modules
Stars: ✭ 80 (-35.48%)
Mutual labels:  sentry
Nest Raven
Sentry Raven Module for Nest.js Framework
Stars: ✭ 123 (-0.81%)
Mutual labels:  sentry
Attic Sentry
Mirror of Apache Sentry
Stars: ✭ 109 (-12.1%)
Mutual labels:  sentry
Raven Aiohttp
An aiohttp transport for raven-python
Stars: ✭ 92 (-25.81%)
Mutual labels:  sentry

小程序 Sentry SDK (Beta)

特性

除了 Sentry 基础的特性,还提供以下小程序相关特性

  • 记录客户端基本信息
  • 记录页面 request 请求
  • 记录应用生命周期(onAppLaunch, onAppShow, onAppHide)
  • 记录页面导航
  • 记录小程序 api 调用
  • 记录 console 日志
  • 记录应用框架异常和未捕获异常
  • 记录微信小程序 Unhandled Promise Rejection Error
  • 记录 setTimeout, setInterval 内异常
  • 支持小程序 LogManager
  • 支持小程序实时日志 getRealtimeLogManager

相关链接

使用

安装

  • npm i sentry-mina --save

小程序环境

默认环境为微信小程序,其他平台小程序可在初始化时配置特定平台环境对象

sentry.init({
  minaContext: wx
})

sentry.init({
  minaContext: {
    getSystemInfo: () => {},
    request: () => {},
    setStorage: () => {},
    getStorageSync: () => {},
    getLaunchOptionsSync: () => {},
    // ...
  }
})

微信开发工具配置

控制台报 regeneratorRuntime is not defined 错误,在开发工具上启用 增强编译 可解决 @NullYing

微信后台配置

开发中配置 sentry.io 的 url 地址。(sentry.io 未经过 icp 备案,需自己做转发)

Usage

import * as sentry from "sentry-mina";

// config Sentry
sentry.init({
  dsn: ''
})

// Set user information, as well as tags and further extras
sentry.configureScope(scope => {
  scope.setUser({ id: '4711' });
  scope.setTag('user_mode', 'admin');
  scope.setExtra('battery', 0.7);
  // scope.clear();
});

// Add a breadcrumb for future events
sentry.addBreadcrumb({
  message: 'My Breadcrumb',
  // ...
});

// Capture exceptions, messages or manual events
sentry.captureMessage('Hello, world!');
sentry.captureException(new Error('Good bye'));
sentry.captureEvent({
  message: 'Manual',
  stacktrace: [
    // ...
  ],
});

INTEGRATIONS

Breadcrumbs

new sentry.Integrations.Breadcrumbs({
  console: true,
  realtimeLog: ['info', 'warn', 'error'], // https://developers.weixin.qq.com/miniprogram/dev/framework/realtimelog/
  request: true,
  navigation: true,
  api: true,
  lifecycle: true,
  unhandleError: true
})
配置 类型 默认值 描述
console Boolean, Array true 是否记录 console 日志,如果值为数组 ['log', 'info'],则只记录数组中所列的日志
realtimeLog Boolean, Array true 是否记录实时日志,如果值为数组 ['log', 'info'],则只记录数组中所列的日志。将程序中通过 console 打的日志记录到小程序实时日志中, console.log 通过 realtimeLog.info 进行记录
request Boolean true 是否记录页面 request 请求
navigation Boolean true 是否记录页面导航信息
api Boolean true 是否记录小程序 API 调用
lifecycle Boolean true 是否记录小程序生命周期变化
unhandleError Boolean true 是否记录微信小程序 Unhandled Promise Rejection Error

TryCatch

捕获并记录 setTimeout, setInterval 内的异常

new sentry.Integrations.TryCatch()

LogManager

将 Sentry 事件数据记录到小程序 LogManager

new sentry.Integrations.LogManager({
  level: 0
})
配置 类型 默认值 描述
level Number 0 取值为0表示是否会把 App、Page 的生命周期函数和 wx 命名空间下的函数调用写入日志,取值为1则不会

GlobalHandlers

记录 app.onError 和 app.onPageNotFound 日志

new sentry.Integrations.GlobalHandlers()

TRANSPORT

目前小程序只支持通过 request 发送日志到服务器,由于小程序 request 有并发限制, sentry-mina 以队列的方式发送日志请求,避免过多占用请求资源。

sentry-mina 发送日志,支持失败重试,默认重试 2 次。可以通过以下方式

sentry.init({
  transportOptions: {
    retry: 2
  }
})

进行配置。

sentry-mina 会记录未发送的日志,当用户重新进入小程序,会继续发送。

PREVIEW

stack breadcrumbs meta

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].