1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-08 05:57:03 +09:00

log config

This commit is contained in:
Sergey Cherepanov 2022-10-10 13:48:56 +03:00 committed by Mikhail Iudin
parent 273a98d985
commit ad8e2c5ac3
No known key found for this signature in database
GPG key ID: FAAAA8BAABDFF1C0
11 changed files with 87 additions and 15 deletions

View file

@ -29,13 +29,14 @@ proto:
$(GOGO_START) protoc --gogofaster_out=:. $(P_TEST_CHANGES_PATH_PB)/proto/*.proto
$(eval PKGMAP := $$(P_TREE_CHANGES),$$(P_ACL_RECORDS))
$(GOGO_START) protoc --gogofaster_out=$(PKGMAP):. --go-drpc_out=protolib=github.com/gogo/protobuf:. common/commonspace/spacesyncproto/protos/*.proto
$(GOGO_START) protoc --gogofaster_out=:. --go-drpc_out=protolib=github.com/gogo/protobuf:. consensus/consensusproto/protos/*.proto
build:
@$(eval FLAGS := $$(shell govvv -flags -pkg github.com/anytypeio/go-anytype-infrastructure-experiments/app))
go build -v -o bin/anytype-node -ldflags "$(FLAGS)" cmd/node/node.go
test-deps:
@echo 'Generating test mocks...'
@go install github.com/golang/mock/mockgen
@go generate ./...
build-consensus:
@$(eval FLAGS := $$(shell govvv -flags -pkg github.com/anytypeio/go-anytype-infrastructure-experiments/app))
go build -v -o bin/consensus-node -ldflags "$(FLAGS)" cmd/consensusnode/consensusnode.go

View file

@ -1,21 +1,50 @@
package logger
import "go.uber.org/zap"
import (
"go.uber.org/zap"
"sync"
)
var DefaultLogger *zap.Logger
var (
mu sync.Mutex
defaultLogger *zap.Logger
levels = make(map[string]zap.AtomicLevel)
loggers = make(map[string]*zap.Logger)
)
func init() {
DefaultLogger, _ = zap.NewDevelopment(zap.IncreaseLevel(zap.InfoLevel))
defaultLogger, _ = zap.NewDevelopment()
zap.NewProduction()
}
func SetDefault(l *zap.Logger) {
mu.Lock()
defer mu.Unlock()
*defaultLogger = *l
for name, l := range loggers {
*l = *defaultLogger.Named(name)
}
}
func SetNamedLevels(l map[string]zap.AtomicLevel) {
mu.Lock()
defer mu.Unlock()
levels = l
}
func Default() *zap.Logger {
return DefaultLogger
mu.Lock()
defer mu.Unlock()
return defaultLogger
}
func NewNamed(name string, fields ...zap.Field) *zap.Logger {
l := DefaultLogger.Named(name)
mu.Lock()
defer mu.Unlock()
l := defaultLogger.Named(name)
if len(fields) > 0 {
l = l.With(fields...)
}
loggers[name] = l
return l
}

View file

@ -58,7 +58,7 @@ func main() {
if err != nil {
log.Fatal("can't open config file", zap.Error(err))
}
conf.Log.ApplyGlobal()
// bootstrap components
a.Register(conf)
Bootstrap(a)

View file

@ -16,7 +16,7 @@ import (
"sync"
)
const CName = "net/dialer"
const CName = "common.net.dialer"
var ErrArrdsNotFound = errors.New("addrs for peer not found")

View file

@ -13,7 +13,7 @@ import (
)
const (
CName = "net.pool"
CName = "common.net.pool"
)
var log = logger.NewNamed(CName)

View file

@ -18,7 +18,7 @@ import (
"time"
)
const CName = "net/drpcserver"
const CName = "common.net.drpcserver"
var log = logger.NewNamed(CName)

View file

@ -16,7 +16,7 @@ import (
type HandshakeError error
const CName = "net/secure"
const CName = "common.net.secure"
var log = logger.NewNamed(CName)

View file

@ -30,6 +30,7 @@ type Config struct {
Nodes []Node `yaml:"nodes"`
Space Space `yaml:"space"`
Metric Metric `yaml:"metric"`
Log Log `yaml:"log"`
}
func (c *Config) Init(a *app.App) (err error) {

36
config/log.go Normal file
View file

@ -0,0 +1,36 @@
package config
import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/app/logger"
"go.uber.org/zap"
)
type Log struct {
Production bool `yaml:"production"`
DefaultLevel string `yaml:"defaultLevel"`
NamedLevels map[string]string `yaml:"namedLevels"`
}
func (l Log) ApplyGlobal() {
var conf zap.Config
if l.Production {
conf = zap.NewProductionConfig()
} else {
conf = zap.NewDevelopmentConfig()
}
if defaultLevel, err := zap.ParseAtomicLevel(l.DefaultLevel); err == nil {
conf.Level = defaultLevel
}
var levels = make(map[string]zap.AtomicLevel)
for k, v := range l.NamedLevels {
if lev, err := zap.ParseAtomicLevel(v); err != nil {
levels[k] = lev
}
}
defaultLogger, err := conf.Build()
if err != nil {
logger.Default().Fatal("can't build logger", zap.Error(err))
}
logger.SetDefault(defaultLogger)
logger.SetNamedLevels(levels)
}

View file

@ -26,6 +26,7 @@ type Config struct {
Account config.Account `yaml:"account"`
Mongo Mongo `yaml:"mongo"`
Metric config.Metric `yaml:"metric"`
Log config.Log `yaml:"log"`
}
func (c *Config) Init(a *app.App) (err error) {

View file

@ -12,3 +12,7 @@ mongo:
logCollection: log
metric:
addr: "127.0.0.1:4000"
log:
production: true
defaultLevel: debug