使用单一模块收集、存储和可视化日志
Errsole 是一个开源的 Node.js 日志记录器。它内置了一个网页仪表板,用于查看、筛选和搜索您的应用日志。
https://github.com/errsole/errsole.js/assets/3775513/b59424fa-c3b3-4a65-b603-e35499fe4263
特性
-
简易设置: 只需在应用的主文件开头插入 Errsole 代码片段即可。就这么简单!
-
自动日志收集: Errsole 自动从 Node.js 控制台直接收集所有应用日志。
-
自定义日志记录: Errsole 的自定义日志记录器提供多个日志级别,从而实现更精确的日志记录。此外,您可以在日志中包含元数据,并根据自己的偏好接收特定日志事件的警报。了解更多
-
集中式日志管理: Errsole 将来自多个服务器的所有应用日志整合到一个集中的数据库中。您可以选择自己喜欢的数据库系统。
-
交互式网页仪表板: 使用 Errsole 网页仪表板轻松查看、筛选和搜索您的应用日志。
-
安全访问控制: Errsole 内置身份验证,确保只有您和授权的开发团队可以访问日志。
-
错误通知: Errsole 将应用崩溃和自定义警报的通知直接发送到您的电子邮件或 Slack。
-
数据保留: 您可以指定希望保留应用日志的天数。
性能基准
使用 Errsole Logger 的 Node.js 应用每分钟可以处理比使用 Elasticsearch 多 90,000 个请求,比使用 Amazon CloudWatch 多 70,000 个请求。了解更多
设置
- Errsole 与 SQLite 用于基于文件的日志存储
- Errsole 与 MongoDB
- Errsole 与 MySQL
- Errsole 与 PostgreSQL
- Errsole 与 MariaDB
- Errsole 与 OracleDB
- 高级配置
网页仪表板访问
完成设置后,您可以通过以下方法访问 Errsole 网页仪表板:
- 本地环境: 打开网页浏览器,访问
http://localhost:8001/
。 - 远程服务器: 如果您已将 Errsole 部署在远程服务器上,请使用服务器的 IP 地址或域名,后跟端口号(例如,YourServerIP:8001 或 YourDomain:8001)。
注意
如果您使用不同的端口或指定了自定义路径初始化 Errsole,请按如下方式调整 URL:
- 将 8001 替换为您选择的端口号。
- 在 URL 末尾附加您的自定义路径。
http(s)://YourServerIP:CustomPort/YourCustomPath
代理中间件配置
如果由于防火墙限制而无法访问 8001 端口,或者您更喜欢在主域名/端口上托管 Errsole 网页仪表板,可以在应用中配置 Errsole 代理中间件。以下是分步指南:代理中间件配置
自定义日志记录函数
log / info
log 函数用于记录消息或信息。它可以接受一个或多个参数,可以是字符串、数字、JavaScript 对象或 Error 对象。
示例
errsole.log('记录一条消息');
errsole.log('支持', '多个', '参数');
errsole.log('使用变量记录:', var1);
errsole.log(new Error('发生了一个错误'));
errsole.log('使用错误对象记录:', errorObject);
alert
alert 函数记录消息并向配置的渠道(如电子邮件或 Slack)发送通知。它接受与 log 函数相同类型的参数。
示例
errsole.alert('警报!发生了重要事件');
error
error 函数专门用于记录错误。它接受与 log 函数相同类型的参数。
示例
errsole.error(new Error('发生了一个错误'));
warn
warn 函数用于记录警告消息。它接受与 log 函数相同类型的参数。
示例
errsole.warn('这是一条警告消息');
debug
debug 函数记录调试信息,通常用于开发过程中的故障排除。它接受与 log 函数相同类型的参数。
示例
errsole.debug('调试信息');
meta
在 Errsole 的自定义日志记录器中,您可以在日志中包含元数据。这些元数据可以是任何上下文信息,如 HTTP 请求或数据库查询结果。在 Errsole 网页仪表板中,您可以在一个整洁的 JSON 查看器中查看这些元数据,而不会使日志消息变得混乱。
要在日志中包含元数据,请使用 meta
函数,然后使用适当的日志记录函数(error、log 等)。
示例
errsole.meta({ reqBody: req.body, queryResults: results }).error(err);
errsole.meta({ email: req.body.email }).log('用户已登录');
注意
meta
函数必须是链中的第一个函数,后跟所需的日志记录函数。
有用的链接
-
遇到问题? 在我们的 GitHub 仓库提出问题。
-
有疑问? 使用我们的问答论坛。
-
想请求功能或分享想法? 使用我们的讨论论坛。
-
想贡献代码? 首先,在我们的讨论论坛中与社区分享您的想法,看看其他人怎么说。然后,复刻仓库,进行更改,并提交拉取请求。