返回首页
24小时热榜
我是 LogLayer 的作者,这是一款 TypeScript 日志库,它为日志库提供了一个抽象层,同时也提供了将日志发送到云服务提供商(如 DataDog)的传输功能。
LogLayer 旨在输出结构化日志,我设计的日志 API 也反映了这一点:
```typescript
log.withMetadata({ userId: 123 })
.withError(new Error())
.error("Something's wrong!")
```
根据您使用的日志库,LogLayer 的输出可能如下所示:
```json
{
"msg": "Something's wrong!",
"metadata": {
"userId": 123
},
"err": {
"type": "Error",
"message": "test"
}
}
```
这个设计的理念是,如果您觉得所使用的日志库无法满足您的需求,您可以轻松地更换 LogLayer 初始化的库,而无需更改您已经编写的日志相关代码。
这个周末,我发布了 LogLayer 的第七个版本,增加了对混入(mixins)的支持。我希望 LogLayer 的 API 仅专注于日志记录,但同时也具备在需要时进行扩展的能力。
出现的使用场景是我的工作场所希望获得更好的指标。我们确实对系统进行了自动化监控,但有时我们希望获得更精确的指标。我注意到在某些情况下,指标和日志是密切相关的,我认为如果我能在写日志时访问同一个日志客户端并能够将指标发送到 StatsD,那将会非常方便。
在 Node.js 领域,我相信 "hot-shots" 是大多数人使用的 StatsD 客户端,我为其创建了一个混入,将 hot-shots 方法添加到 LogLayer API 中。因此,如果您希望同时发送指标和日志,现在就可以实现这一功能:
```typescript
log.statsIncrement("error.count")
.withMetadata({ userId: 123 })
.withError(new Error())
.error("Something's wrong!")
```
这将会在将日志发送到您的日志库或云服务提供商的同时,向 StatsD 发送一个增量调用。
我希望通过这种开发体验,考虑指标不会成为事后的想法,因为您现在可以在编写日志时轻松发送指标。
(您也可以在不发送日志的情况下使用混入发送指标。)
有时候在我进行头脑风暴时,我想把刚刚进行的对话分享给我的关注者,但从多个来源复制粘贴实在太麻烦了。
似乎没有现代的元搜索引擎能够从其来源获取所有可用结果(通过分页),然后对这些结果进行爬取和重新排序。根据我从论文中了解到的,这正是原始元爬虫所做的。
我的问题是:你知道现代有哪种搜索引擎能做到这一点吗?除了元爬虫,你还记得其他旧的搜索引擎吗?
这可能会比较慢,但我认为这样的工具会非常棒,特别是如果它是开源的,这样我就可以提出并实验自己的排序方法。
Common Crawl大约包含3000亿个页面,如果将所有内容以提取文本格式下载,压缩后仅占约816 TB。如果有人利用这些数据创建一个搜索引擎,我认为它会比Bing更全面,可能与Google相似。我所知道的基于Common Crawl的搜索引擎仅使用了它们可用数据的一小部分。你知道有没有使用全部数据的搜索引擎吗?