儲存協程上下文的 RequestID
https://github.com/quanhengzhuang/requestid
本工具可以在 go 協程中維持一個不變的 requestID,以便能在記錄日誌時獲取到這個 ID,將整個請求的的日誌串起來,方便追蹤問題。
雖然使用 context 可以達到同樣的目的,但是這會要求所有的方法增加 context 引數,如果只用來傳遞這個 ID,成本過高,在實際工程中很痛苦。
本工具並未提供一個具體的 requestID 生成方法,可以使用類似 uuid 的演算法,或類似 snowflake 的演算法。
一般可以在 http 的 middleware 中Set,在 logger 中 Get。如果請求中開了新的 goroutine,還可以繼續 Set。
以下是在一個 goroutine 中使用示例:
import (
"github.com/ncfwx/x/requestid"
)
go func() {
requestid.Set("my-request-id")
defer requestid.Delete()
func() {
requestid.Get()
}()
}()
相關文章
- oracle的儲存過程Oracle儲存過程
- 儲存過程與儲存函式儲存過程儲存函式
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- mysql和orcale的儲存過程和儲存函式MySql儲存過程儲存函式
- Sqlserver中的儲存過程SQLServer儲存過程
- Mysql 儲存過程的使用MySql儲存過程
- SQLSERVER儲存過程SQLServer儲存過程
- 呼叫儲存過程儲存過程
- mysql 儲存過程MySql儲存過程
- unidac儲存過程儲存過程
- firedac儲存過程儲存過程
- Oracle儲存過程Oracle儲存過程
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程
- Sqlsugar呼叫Oracle的儲存過程SqlSugarOracle儲存過程
- mysql儲存過程的引數MySql儲存過程
- plsqlDevloper 儲存過程的除錯SQLdev儲存過程除錯
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- JdbcTemplate調儲存過程JDBC儲存過程
- 造數儲存過程儲存過程
- 儲存過程——遊標儲存過程
- 儲存過程 傳 datatable儲存過程
- JAVA儲存過程(轉)Java儲存過程
- MySQL之儲存過程MySql儲存過程
- MySQL---------儲存過程MySql儲存過程
- linux呼叫儲存過程Linux儲存過程
- Winform呼叫儲存過程ORM儲存過程
- mysql儲存過程整理MySql儲存過程
- Oracle儲存過程-1Oracle儲存過程
- Mysql 5.7儲存過程的學習MySql儲存過程
- SqlServer儲存過程的建立與使用SQLServer儲存過程
- MySQL儲存過程的建立和使用MySql儲存過程
- mongo 儲存過程詳解Go儲存過程
- SQL 分頁儲存過程SQL儲存過程
- 原創:oracle 儲存過程Oracle儲存過程
- jsp中呼叫儲存過程JS儲存過程
- 資料庫儲存過程資料庫儲存過程
- mybatis儲存過程返回listMyBatis儲存過程