W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
Recovery 中間件用于異?;謴?fù),服務(wù)出現(xiàn)異常的情況下,防止程序直接退出。
Recovery 中間件中提供了兩個配置方法 ?WithHandler()
? 和 ?WithLogger()
?。
WithHandler()
?func WithHandler(h HandlerFunc) Option {
return func(o *options) {
o.handler = h
}
}
用于設(shè)置服務(wù)異常時可以使用自定義的 ?handler
?進(jìn)行處理,例如投遞異常信息到 sentry。
WithLogger()
?func WithLogger(logger log.Logger) Option {
return func(o *options) {
o.logger = logger
}
}
用于設(shè)置中間件打印日志時使用的 ?logger
?。
var opts = []http.ServerOption{
http.Middleware(
recovery.Recovery(
recovery.WithLogger(log.DefaultLogger),
recovery.WithHandler(func(ctx context.Context, req, err interface{}) error {
// do someting
return nil
}),
),
),
}
srv := http.NewServer(opts...)
var opts = []grpc.ServerOption{
grpc.Middleware(
recovery.Recovery(
recovery.WithLogger(log.DefaultLogger),
recovery.WithHandler(func(ctx context.Context, req, err interface{}) error {
// do someting
return nil
}),
),
),
}
srv := grpc.NewServer(opts...)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: