[#493] logger: Do not set global fields in constructor

Remove setting of `app_name` and `app_version` fields in `NewLogger`
constructor. Set these fields in Node and IR application in already
constructed log and remove them from viper .

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2021-05-11 11:25:54 +03:00 committed by Alex Vanin
parent d17526f8ac
commit 2a970b0125
4 changed files with 11 additions and 17 deletions

View file

@ -18,9 +18,6 @@ func newConfig(path string) (*viper.Viper, error) {
v.AutomaticEnv()
v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
v.SetDefault("app.name", misc.InnerRingName)
v.SetDefault("app.version", misc.Version)
defaultConfiguration(v)
if path != "" {

View file

@ -47,6 +47,11 @@ func main() {
log, err := logger.NewLogger(cfg)
exitErr(err)
log = log.With(
zap.String("app_name", misc.InnerRingName),
zap.String("app_version", misc.Version),
)
ctx := grace.NewGracefulContext(log)
intErr := make(chan error) // internal inner ring errors

View file

@ -355,6 +355,11 @@ func initCfg(path string) *cfg {
log, err := logger.NewLogger(viperCfg)
fatalOnErr(err)
log = log.With(
zap.String("app_name", misc.NodeName),
zap.String("app_version", misc.Version),
)
netAddr, err := network.AddressFromString(viperCfg.GetString(cfgBootstrapAddress))
fatalOnErr(err)
@ -442,9 +447,6 @@ func initViper(path string) *viper.Viper {
v.AutomaticEnv()
v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
v.SetDefault("app.name", misc.NodeName)
v.SetDefault("app.version", misc.Version)
defaultConfiguration(v)
if path != "" {

View file

@ -27,20 +27,10 @@ func NewLogger(v *viper.Viper) (*Logger, error) {
c.Encoding = "console"
c.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
l, err := c.Build(
return c.Build(
// record a stack trace for all messages at or above fatal level
zap.AddStacktrace(zap.NewAtomicLevelAt(zap.FatalLevel)),
)
if err != nil {
return nil, err
}
name := v.GetString("app.name")
version := v.GetString("app.version")
return l.With(
zap.String("app_name", name),
zap.String("app_version", version)), nil
}
func safeLevel(lvl string) zap.AtomicLevel {