儲存協程上下文的 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()
}()
}()
相關文章
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- Mysql 的儲存過程和儲存函式MySql儲存過程儲存函式
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- oracle的儲存過程Oracle儲存過程
- 修改的儲存過程儲存過程
- mysql的儲存過程MySql儲存過程
- 儲存過程儲存過程
- 儲存過程與儲存函式儲存過程儲存函式
- 儲存過程呼叫其他模式的儲存過程需要注意的地方儲存過程模式
- MySql儲存過程—2、第一個MySql儲存過程的建立MySql儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- MySQL儲存過程詳解 mysql 儲存過程linkMySql儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- 儲存過程中巢狀儲存過程的變數執行方式儲存過程巢狀變數
- mysql和orcale的儲存過程和儲存函式MySql儲存過程儲存函式
- Mysql 儲存過程的使用MySql儲存過程
- Sqlserver中的儲存過程SQLServer儲存過程
- 儲存過程的詳解儲存過程
- oracle的儲存過程格式Oracle儲存過程
- 解密encrypt的儲存過程解密儲存過程
- mysql儲存過程的修改MySql儲存過程
- Oracle儲存過程Oracle儲存過程
- 使用儲存過程儲存過程
- sybase儲存過程儲存過程
- java儲存過程Java儲存過程
- 管理儲存過程儲存過程
- 呼叫儲存過程儲存過程
- mysql 儲存過程MySql儲存過程
- SQLSERVER儲存過程SQLServer儲存過程
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程
- 把自編儲存過程設定為系統儲存過程儲存過程
- mysql儲存過程的引數MySql儲存過程
- plsqlDevloper 儲存過程的除錯SQLdev儲存過程除錯
- 移動索引的儲存過程索引儲存過程
- vb呼叫儲存過程的方法儲存過程
- Sqlsugar呼叫Oracle的儲存過程SqlSugarOracle儲存過程
- Sql儲存過程分頁--臨時表儲存SQL儲存過程