插件开发
Builder接口定义
package logger
import "context"
var builder MessageBuilder = new(defaultBuilder)
type MessageBuilder interface {
LoggerX(ctx context.Context, lvl string, tag string, args interface{}, v ...interface{}) //日志插件定义接口
Build(ctx context.Context, args interface{}, v ...interface{}) (position, message string) //日志格式输出接口
}
func SetBuilder(b MessageBuilder) { //设置插件实例,默认为log4go
builder = b
}
接口实现实例请参考defaultBuilder
插件接入
在我们其它的日组件中,内部打印日志的方式为logger.X
的方式,默认引入log4go日志库实例进行打印,若您的项目中采用其它的日志库,可以使用以下方式引入您的日志库。
- 支持引入logrus实例
//支持logrus日志库使用LoggerX接口格式打印日志 log为logrus全局实例
logger.AccessLogLib("logrus", log)
- 支持引入zap实例
//支持Zap日志库使用LoggerX接口格式打印日志 log为zap全局实例
logger.AccessLogLib("zap", log)
- 若现有日志格式不符合预期
参考[builders](https://github.com/tal-tech/loggerX/tree/master/builders)目录下builder文件,实现打印日志接口中LoggerX与Build方法即可。
- 使用参考
日志支持接入其他日志库实例,请参考example目录accessLogLibDemo.go中的demo。