erolog 包提供了一個專門用于 JSON 輸出的簡單快速的 Logger。
zerolog 的 API 旨在為開發者提供出色的體驗和令人驚嘆的性能[1]。其獨特的鏈式 API 允許通過避免內存分配和反射來寫入 JSON ( 或 CBOR ) 日志。
uber 的 zap[2] 庫開創了這種方法, zerolog 通過更簡單的應用編程接口和更好的性能, 將這一概念提升到了更高的層次。
github地址
https://github.com/rs/zerolog
package main
import (
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
)
func main() {
// UNIX Time is faster and smaller than most timestamps
zerolog.TimeFieldFormat=zerolog.TimeFormatUnix
log.Print("hello world")
}
// Output: {"time":1516134303,"level":"debug","message":"hello world"}
Zerolog允許以鍵:值對的形式將數據添加到日志消息中。添加到消息中的數據添加了有關日志事件的“上下文”,這對于調試以及無數其他目的至關重要。下面是一個例子:
助力您的 Golang 自動化之旅:探索 20 個用于簡化任務和提高生產力的重要庫。
Golang,也稱為 Go,是一種靜態類型、編譯型編程語言,由 Google 的 Robert Griesemer、Rob Pike 和 Ken Thompson 設計。 它于 2009 年推出,旨在解決其他編程語言的缺點,特別是在并發編程、垃圾收集和代碼可維護性方面。
Golang 擁有眾多優點,使其成為自動化任務的合適選擇。 由于其編譯性質、強大的并發支持和最小的開銷,它提供了卓越的性能。 此外,其簡單的語法和強大的標準庫簡化了編寫自動化腳本和工具的過程。
以下是 Go 中的 20 個自動化庫。
Go-resty 是一個慣用的、用戶友好的 Golang HTTP 客戶端庫,它簡化了進行 RESTful API 調用的過程。 它具有自動重試、超時以及對 JSON 和 XML 的支持,這有助于在自動化任務期間與各種 API 進行無縫通信。
Goquery 是一個用于網頁抓取的庫,它提供類似 jQuery 的語法來操作和查詢 HTML 文檔。 它使開發人員能夠輕松地從網站提取信息并將其集成到他們的自動化工作流程中。
Colly 是一個高性能、可擴展的 Golang 網絡抓取框架。 它提供了簡潔的界面、異步支持以及緩存、速率限制和自動 cookie 處理等各種功能,這使其成為自動化數據提取任務的強大工具。
Gobot 是一個用于機器人、無人機和物聯網設備的 Golang 框架,為控制各種硬件和軟件平臺提供統一的界面。 它簡化了在機器人和物聯網項目中實施自動化的過程。
Agouti 是一個 Golang 庫,使開發人員能夠控制 Web 瀏覽器以進行端到端測試和自動化。 它支持WebDriver、PhantomJS和ChromeDP,為瀏覽器自動化任務提供統一的API。
Terratest 是一個 Golang 庫,可簡化基礎設施代碼的測試和驗證,特別是 Terraform、Kubernetes 和 AWS。 它允許開發人員編寫自動化測試,以確保其基礎設施的可靠性和穩定性。
Testify 是一個全面的 Golang 測試工具包,為斷言、模擬和測試套件組織提供了簡單而強大的 API。 它有助于為 Golang 應用程序和庫創建自動化測試。
GoConvey 是 Golang 的測試和持續集成框架,提供基于 Web 的 UI 用于可視化測試結果。 它簡化了編寫和執行自動化測試的過程,從而更容易確保軟件質量。
Moby 是一個用于創建基于容器的系統的開源項目。 它提供了各種組件,包括 Golang 庫,可用于構建和管理容器,從而實現容器相關任務的自動化。
Docker Go SDK 是用于與 Docker API 交互的官方 Golang 庫。 它允許開發人員自動管理 Docker 容器、鏡像、網絡和其他資源。
Go-cmp 是一個用于比較復雜數據結構的 Golang 庫。 它對于編寫需要將函數的輸出與預期結果進行比較的自動化測試特別有用。
Go-ethereum 是以太坊協議的官方 Golang 實現。 它提供了一套用于構建和自動化區塊鏈應用程序的庫和工具,包括智能合約和去中心化應用程序(dApp)。
Logrus 是一個靈活的、結構化的 Golang 日志庫。 它提供各種輸出格式、第三方集成的掛鉤以及動態日志級別配置,這有利于自動化日志管理任務。
Cobra 是一個 Golang 庫,可簡化命令行應用程序的創建。 它提供了一個易于使用的界面,用于定義和組織命令、標志和參數,這對于構建自動化工具非常有用。
Viper 是一個 Golang 配置庫,支持 JSON、TOML、YAML、HCL 等多種格式。 它使開發人員能夠動態管理應用程序配置,從而促進配置任務的自動化。
Client-go 是 Kubernetes 的官方 Golang 客戶端庫,允許開發人員以編程方式與 Kubernetes API 進行交互。 它簡化了與 Kubernetes 集群管理相關的任務的自動化,例如部署應用程序和擴展資源。
Gorm 是一個開發人員友好的 Golang ORM(對象關系映射器)庫。 它提供了一個簡單但功能強大的 API 來管理數據庫操作,簡化了數據庫相關任務的自動化。
Go-selenium 是一個用于與 Selenium WebDriver API 交互的 Golang 庫。 它使開發人員能夠自動化 Web 瀏覽器來執行 Web 抓取、端到端測試和瀏覽器自動化等任務。
Go-swagger 是一個用于在 Golang 中使用 OpenAPI 規范的工具包。 它包括代碼生成器、中間件和驗證工具,可促進與 API 設計、開發和測試相關的任務自動化。
Revel 是一個適用于 Golang 的高生產力、全棧 Web 框架,包括路由、驗證和緩存等功能。 它簡化了 Web 應用程序的開發,并實現了開發過程中各種任務的自動化。
Golang 提供了廣泛的庫和工具,可以簡化各個領域的自動化任務,包括 Web 開發、基礎設施、機器人技術等。 通過利用這些庫,開發人員可以簡化工作流程、提高生產力并確保軟件的可靠性和穩定性。