【sdk封装】前端错误日志采集
ec-sdk.js
// 基于window.onerror 收集前端错误信息 window.onerror = function(message, url, line) { if (!url) return; var msg = {}; //记录客户端环境 msg.ua = window.navigator.userAgent; //只记录message里的message属性就好了, //错误信息可能会比较晦涩,有些信息完全无用,应酌情过滤 msg.message = message; msg.url = url; msg.line = line; msg.page = window.location.href; var s = []; //将错误信息转换成字符串 for(var key in msg){ s.push(key + '=' + msg[key]); } s = s.join('&'); console.log('msg',msg); console.log('msg',JSON.stringify(msg)); //控制台打印 var log_msg = { "ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36", "message":"Uncaught ReferenceError: a is not defined", "url":"file:///C:/Users/ymtt/Desktop/%E5%89%8D%E7%AB%AFbasics/%E5%89%8D%E7%AB%AF%E5%BC%82%E5%B8%B8%E7%9B%91%E6%8E%A7/ec-demo.html", "line":11, "page":"file:///C:/Users/ymtt/Desktop/%E5%89%8D%E7%AB%AFbasics/%E5%89%8D%E7%AB%AF%E5%BC%82%E5%B8%B8%E7%9B%91%E6%8E%A7/ec-demo.html" } //这里是用增加标签的方法调用日志收集接口,优点是比较简洁。 // new Image().src = '/ajax-jserror.php?' + encodeURIComponent(s) + '&t=' + Math.random(); };
ec-demo.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>ec-demo</title> <script src="./ec-sdk.js"></script> </head> <body> <script> console.log('a',a); </script> </body> </html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2019-05-06 vue.$nextTick 解决了哪些问题
2019-05-06 【vue lazyload】插件的使用步骤