-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinit.go
51 lines (42 loc) · 1.16 KB
/
init.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package main
import (
"github.com/jmoiron/sqlx"
_ "github.com/lib/pq"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"github.com/ihippik/template-service/config"
)
func iniLogger(cfg config.LogCfg, version string) (*zap.Logger, error) {
lCfg := zap.NewProductionConfig()
lCfg.DisableCaller = !cfg.Caller
lCfg.DisableStacktrace = !cfg.StackTrace
lCfg.EncoderConfig = zapcore.EncoderConfig{
TimeKey: "time",
LevelKey: "level",
MessageKey: "msg",
EncodeTime: zapcore.ISO8601TimeEncoder,
EncodeLevel: zapcore.LowercaseLevelEncoder,
}
switch cfg.Level {
case "debug":
lCfg.Level = zap.NewAtomicLevelAt(zapcore.DebugLevel)
case "warn":
lCfg.Level = zap.NewAtomicLevelAt(zapcore.WarnLevel)
default:
lCfg.Level = zap.NewAtomicLevelAt(zapcore.InfoLevel)
}
logger, err := lCfg.Build()
if err != nil {
return nil, err
}
return logger.With(zap.Field{Key: "version", Type: zapcore.StringType, String: version}), nil
}
func initConn(cfg config.DBCfg) (*sqlx.DB, error) {
db, err := sqlx.Connect("postgres", cfg.Conn)
if err != nil {
return nil, err
}
db.SetMaxOpenConns(cfg.MaxOpenConns)
db.SetMaxIdleConns(cfg.MaxIdleConns)
return db, nil
}