Files
tg_exporter/internal/common.go
2024-09-05 19:08:02 +08:00

62 lines
1.1 KiB
Go

package internal
import (
"context"
"log"
"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 InitLogger(cfg *config.Config) error {
logWriter := zapcore.AddSync(&lj.Logger{
Filename: cfg.LogFile,
MaxBackups: 3,
MaxSize: 100, // megabytes
MaxAge: 7, // days
})
logCore := zapcore.NewCore(
zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig()),
logWriter,
// zap.DebugLevel,
zap.InfoLevel,
)
logger = zap.New(logCore)
return nil
}
func InitClient(cfg *config.Config) error {
client = NewClient(logger, cfg)
return nil
}
func Close() error {
_ = logger.Sync()
if db != nil {
db.Close()
}
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 {
log.Println("run client")
defer log.Println("run client done")
return getClient().Client.Run(context.Background(), f)
}
}