Files
tg_exporter/internal/common.go
2024-09-02 14:50:51 +08:00

51 lines
916 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,
)
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)
}
}