refactor: harden sqlite runtime and packaged startup flow
- refine config loading with --config and current-directory .env - improve sqlite busy handling and runtime DB tuning - restore telegram payment notification and wallet input flow - add behavior-based config and callback recovery tests
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
package http_client
|
||||
|
||||
import (
|
||||
"github.com/go-resty/resty/v2"
|
||||
"time"
|
||||
|
||||
"github.com/go-resty/resty/v2"
|
||||
)
|
||||
|
||||
// GetHttpClient 获取请求客户端
|
||||
@@ -13,6 +14,6 @@ func GetHttpClient(proxys ...string) *resty.Client {
|
||||
proxy := proxys[0]
|
||||
client.SetProxy(proxy)
|
||||
}
|
||||
client.SetTimeout(time.Second * 5)
|
||||
client.SetTimeout(time.Second * 10)
|
||||
return client
|
||||
}
|
||||
|
||||
+32
-5
@@ -7,27 +7,37 @@ import (
|
||||
"github.com/spf13/viper"
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
var Sugar *zap.SugaredLogger
|
||||
|
||||
func Init() {
|
||||
writeSyncer := getLogWriter()
|
||||
encoder := getEncoder()
|
||||
core := zapcore.NewCore(encoder, writeSyncer, zapcore.DebugLevel)
|
||||
level := getLogLevel()
|
||||
core := zapcore.NewTee(
|
||||
zapcore.NewCore(getConsoleEncoder(), getConsoleWriter(), level),
|
||||
zapcore.NewCore(getFileEncoder(), getFileWriter(), level),
|
||||
)
|
||||
logger := zap.New(core, zap.AddCaller())
|
||||
Sugar = logger.Sugar()
|
||||
}
|
||||
|
||||
func getEncoder() zapcore.Encoder {
|
||||
func getFileEncoder() zapcore.Encoder {
|
||||
encoderConfig := zap.NewProductionEncoderConfig()
|
||||
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
||||
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
|
||||
return zapcore.NewJSONEncoder(encoderConfig)
|
||||
}
|
||||
|
||||
func getLogWriter() zapcore.WriteSyncer {
|
||||
func getConsoleEncoder() zapcore.Encoder {
|
||||
encoderConfig := zap.NewDevelopmentEncoderConfig()
|
||||
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
||||
encoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder
|
||||
return zapcore.NewConsoleEncoder(encoderConfig)
|
||||
}
|
||||
|
||||
func getFileWriter() zapcore.WriteSyncer {
|
||||
file := fmt.Sprintf("%s/log_%s.log",
|
||||
config.LogSavePath,
|
||||
time.Now().Format("20060102"))
|
||||
@@ -40,3 +50,20 @@ func getLogWriter() zapcore.WriteSyncer {
|
||||
}
|
||||
return zapcore.AddSync(lumberJackLogger)
|
||||
}
|
||||
|
||||
func getConsoleWriter() zapcore.WriteSyncer {
|
||||
return zapcore.Lock(os.Stdout)
|
||||
}
|
||||
|
||||
func getLogLevel() zapcore.Level {
|
||||
switch config.LogLevel {
|
||||
case "debug":
|
||||
return zapcore.DebugLevel
|
||||
case "warn":
|
||||
return zapcore.WarnLevel
|
||||
case "error":
|
||||
return zapcore.ErrorLevel
|
||||
default:
|
||||
return zapcore.InfoLevel
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user