slog 简介:用于 Go 的结构化日志

日志是任何软件的重要组成部分,Go 提供了一个内置日志包(slog)。然而,随着应用的复杂性不断增加,对结构化日志的需求也越来越明显。结构化日志允许开发人员以结构化格式记录数据,便于日志聚合工具进行解析和分析,目前业界使用比较多的是:zap。 在本文中,我将简单介绍 slog 包、它的功能以及如何在 Go 应用程序中使用它。 # 什么是 slog? `slog` 提供结构化日志记录,其中的日志记录包括一条消息、level 和其他各种以键值对表示的属性。 # 使用 ...阅读全文

2023-09-16 10:33:35

使用go-future替代sync.WaitGroup简化并发编程

go语言中经常使用`sync.WaitGroup`并发执行多个任务,然后使用Wait等待任务执行完成。实际开发中,经常需要在多个任务中调用接口,需要获取到接口返回值和错误,并在外部函数中处理。这样就需要先声明返回值和错误,用起来不太方便。推荐一个简单的三方库`go-future`,支持范型,可以方便的替代WaitGroup,简化并发开发体验: 获取: ```shell go get github.com/ycl2018/go-future (go >=1.20) ``` ...阅读全文

2024-11-14 15:12:01