1 回答

TA貢獻1836條經驗 獲得超3個贊
日志級別是非解決方案。您的目標應該是不要讓 PII(個人身份信息)完全進入日志轉儲,包括當您在調試模式下啟動服務時。
根據您執(zhí)行日志記錄的方式,只需在結構上實現相關接口,并省略或密文包含 PII 的字段。如果需要對原始值有一些了解以進行調試的字段,則只能對其進行部分密文。
例如,如果使用謂詞或類似詞登錄,則可以實現該接口:fmtStringer
type User struct {
Name string
Password string
}
func (u User) String() string {
return fmt.Sprintf("{%s %s}", u.Name, "*****")
}
func main() {
u := User{"pkaramol", "secret"}
fmt.Println(u) // {pkaramol *****}
}
如果您登錄 JSON,請實施以進行密文,或使用結構標記省略:MarshalJSONjson:"-"
func (u User) MarshalJSON() ([]byte, error) {
return json.Marshal(map[string]interface{}{
"name": u.Name,
"password": "*****",
})
}
func main() {
u := User{"pkaramol", "secret"}
b, _ := json.Marshal()
fmt.Println(string(b)) // {"name":"pkaramol","password":"*****"}
}
- 1 回答
- 0 關注
- 72 瀏覽
添加回答
舉報