插件开发


Builder接口定义

  1. package logger
  2. import "context"
  3. var builder MessageBuilder = new(defaultBuilder)
  4. type MessageBuilder interface {
  5. LoggerX(ctx context.Context, lvl string, tag string, args interface{}, v ...interface{}) //日志插件定义接口
  6. Build(ctx context.Context, args interface{}, v ...interface{}) (position, message string) //日志格式输出接口
  7. }
  8. func SetBuilder(b MessageBuilder) { //设置插件实例,默认为log4go
  9. builder = b
  10. }

接口实现实例请参考defaultBuilder

插件接入

在我们其它的日组件中,内部打印日志的方式为logger.X的方式,默认引入log4go日志库实例进行打印,若您的项目中采用其它的日志库,可以使用以下方式引入您的日志库。

  • 支持引入logrus实例
  1. //支持logrus日志库使用LoggerX接口格式打印日志 log为logrus全局实例
  2. logger.AccessLogLib("logrus", log)
  • 支持引入zap实例
  1. //支持Zap日志库使用LoggerX接口格式打印日志 log为zap全局实例
  2. logger.AccessLogLib("zap", log)
  • 若现有日志格式不符合预期
  1. 参考[builders](https://github.com/tal-tech/loggerX/tree/master/builders)目录下builder文件,实现打印日志接口中LoggerX与Build方法即可。
  • 使用参考
    日志支持接入其他日志库实例,请参考example目录accessLogLibDemo.go中的demo。