41 lines
1023 B
Go
41 lines
1023 B
Go
|
package mq
|
|||
|
|
|||
|
import (
|
|||
|
"fmt"
|
|||
|
"github.com/apache/rocketmq-client-go/v2/primitive"
|
|||
|
)
|
|||
|
|
|||
|
type Logger interface {
|
|||
|
// Debugf logs a formatted debugging message.
|
|||
|
Debugf(format string, args ...interface{})
|
|||
|
|
|||
|
// Infof logs a formatted informational message.
|
|||
|
Infof(format string, args ...interface{})
|
|||
|
|
|||
|
// Warnf logs a formatted warning message.
|
|||
|
Warnf(format string, args ...interface{})
|
|||
|
|
|||
|
// Errorf logs a formatted error message.
|
|||
|
Errorf(format string, args ...interface{})
|
|||
|
}
|
|||
|
|
|||
|
func init() {
|
|||
|
SetRecoverLogger(nil)
|
|||
|
}
|
|||
|
|
|||
|
// SetRecoverLogger 设置RocketMQ的recover的处理函数日志,不设置会导致协程panic后程序退出
|
|||
|
func SetRecoverLogger(logger Logger) {
|
|||
|
SetRecoverHandler(func(err any) {
|
|||
|
if logger == nil {
|
|||
|
fmt.Printf("rocketmq 发生 panic:%+v\n", err)
|
|||
|
return
|
|||
|
}
|
|||
|
logger.Errorf("rocketmq 发生 panic:%+v", err)
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
// SetRecoverHandler 设置RocketMQ的recover的处理函数,不设置会导致协程panic后程序退出
|
|||
|
func SetRecoverHandler(fn func(any)) {
|
|||
|
primitive.PanicHandler = fn
|
|||
|
}
|