github.com/zly-app/zapp@v1.3.3/pkg/utils/context.go (about)

     1  package utils
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/zly-app/zapp/core"
     7  )
     8  
     9  var Ctx = &ctxCli{}
    10  
    11  type ctxCli struct{}
    12  
    13  var ctxLoggerKey = &ctxLoggerField{}
    14  
    15  type ctxLoggerField struct{}
    16  
    17  // 将log存入ctx
    18  func (*ctxCli) SaveLogger(ctx context.Context, log core.ILogger) context.Context {
    19  	return context.WithValue(ctx, ctxLoggerKey, log)
    20  }
    21  
    22  // 获取log, 不存在时返回nil
    23  func (*ctxCli) GetLogger(ctx context.Context) core.ILogger {
    24  	value := ctx.Value(ctxLoggerKey)
    25  	log, ok := value.(core.ILogger)
    26  	if ok {
    27  		return log
    28  	}
    29  	return nil
    30  }