open-consul/agent/consul/logging.go

35 lines
563 B
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package consul
import (
"sync"
"github.com/hashicorp/go-hclog"
)
type loggerStore struct {
root hclog.Logger
l sync.Mutex
cache map[string]hclog.Logger
}
func newLoggerStore(root hclog.Logger) *loggerStore {
return &loggerStore{
root: root,
cache: make(map[string]hclog.Logger),
}
}
func (ls *loggerStore) Named(name string) hclog.Logger {
ls.l.Lock()
defer ls.l.Unlock()
l, ok := ls.cache[name]
if !ok {
l = ls.root.Named(name)
ls.cache[name] = l
}
return l
}