better-monitor 是一个前端日志监控SDK,用于帮助开发者快速集成前端监控功能,代码已完全开源在 GitHub (如有帮助,请 star 支持一下😎)。
该 SDK 需搭配后端服务使用。你可以参考本文档自行实现后端服务,或者使用我们的 在线服务 (适合访问量不大的站点,每月不到一杯奶茶的费用)。使用该 SDK 的开发者(不论是否使用在线服务),请使用微信或企业微信扫描下方二维码加入我们的支持群方便沟通联系:

<script
crossorigin="anonymous"
src="https://cdn.verysites.com/verybugs/better-monitor/better-monitor.min.js"
></script>if ("BetterMonitor" in window) {
// 初始化 SDK 参数
window.BetterMonitor.init({
// 替换成你的项目ID,其他可配置参数见后文
projectId: 999,
});
}<script
crossorigin="anonymous"
data-project-id="<你的项目ID>"
src="https://cdn.verysites.com/verybugs/better-monitor/better-monitor.min.js"
></script># 在项目里安装依赖
npm install -S better-monitorimport BetterMonitor from "better-monitor";
// 初始化 SDK 参数
BetterMonitor.init({
// 替换成你的项目ID,其他可配置参数见后文
projectId: 999,
});描述:初始化 SDK。
interface ParamsInit {
// 项目ID
projectId: string;
// 是否开启 debug 模式,默认为 `false`
debug?: boolean;
// 是否上报接口日志,默认为 `false`
api?: boolean;
// 是否上报页面访问数据,默认为 `true`
view?: boolean;
// 是否上报错误日志,默认为 `true`
error?: boolean;
// 是否上报行为日志,默认为 `true`
action?: boolean;
// 是否上报埋点数据,默认为 `true`
statistics?: boolean;
// 黑名单,匹配的日志将不会被上报
blackList?: Array<string | RegExp>;
// 用于获取用户ID的函数
getUserId?: (defaultStrategy: () => string) => string;
}
function init(settings: Partial<IStore>): void;描述:添加错误日志。一般情况下你不需要主动调用该方法,因为 SDK 会自动捕获 JavaScript 错误日志。
interface IParamsAddBug {
pageUrl: string;
message: string;
stack: string;
source: string;
type: string;
}
function addBug(params: IParamsAddBug): void;描述:打印日志。与 `console.log`、`console.warn` 和 `console.error` 相同。
function printLog(...args: any[]): void;
function printLogDirectly(...args: any[]): void;
function printWarn(...args: any[]): void;
function printWarnDirectly(...args: any[]): void;
function printError(...args: any[]): void;
function printErrorDirectly(...args: any[]): void;用法与 `console.time` 和 `console.timeEnd` 类似。
function logTime(label: string): string;
function logTimeEnd(label: string): void;
function logTimeEndDirectly(label: string): void;SDK 采用批量上报机制,自动将多条日志合并上报,提高性能并减少网络请求:
SDK 会自动监听 SPA 应用的路由变化(`pushState` 和 `hashchange`),自动记录页面访问。

