52 lines
936 B
Go
52 lines
936 B
Go
package internal
|
|
|
|
import (
|
|
"context"
|
|
|
|
"exporter/config"
|
|
|
|
"github.com/spf13/cobra"
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
lj "gopkg.in/natefinch/lumberjack.v2"
|
|
)
|
|
|
|
var (
|
|
client *TClient
|
|
logger *zap.Logger
|
|
)
|
|
|
|
func InitClient(cfg *config.Config) error {
|
|
logWriter := zapcore.AddSync(&lj.Logger{
|
|
Filename: cfg.LogFile,
|
|
MaxBackups: 3,
|
|
MaxSize: 1, // megabytes
|
|
MaxAge: 7, // days
|
|
})
|
|
logCore := zapcore.NewCore(
|
|
zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig()),
|
|
logWriter,
|
|
// zap.DebugLevel,
|
|
zap.InfoLevel,
|
|
)
|
|
logger = zap.New(logCore)
|
|
|
|
client = NewClient(logger, cfg)
|
|
return nil
|
|
}
|
|
|
|
func Close() error {
|
|
_ = logger.Sync()
|
|
return nil
|
|
}
|
|
|
|
func getClient() *TClient {
|
|
return client
|
|
}
|
|
|
|
func wrapE(f func(context.Context) error) func(cmd *cobra.Command, args []string) error {
|
|
return func(cmd *cobra.Command, args []string) error {
|
|
return getClient().Client.Run(context.Background(), f)
|
|
}
|
|
}
|