add logger group for service
This commit is contained in:
@ -8,6 +8,7 @@ import (
|
||||
"github.com/go-gost/core/logger"
|
||||
"github.com/go-gost/x/config"
|
||||
xlogger "github.com/go-gost/x/logger"
|
||||
"github.com/go-gost/x/registry"
|
||||
"gopkg.in/natefinch/lumberjack.v2"
|
||||
)
|
||||
|
||||
@ -53,3 +54,17 @@ func ParseLogger(cfg *config.LoggerConfig) logger.Logger {
|
||||
|
||||
return xlogger.NewLogger(opts...)
|
||||
}
|
||||
|
||||
func List(name string, names ...string) []logger.Logger {
|
||||
var loggers []logger.Logger
|
||||
if adm := registry.LoggerRegistry().Get(name); adm != nil {
|
||||
loggers = append(loggers, adm)
|
||||
}
|
||||
for _, s := range names {
|
||||
if lg := registry.LoggerRegistry().Get(s); lg != nil {
|
||||
loggers = append(loggers, lg)
|
||||
}
|
||||
}
|
||||
|
||||
return loggers
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ import (
|
||||
auth_parser "github.com/go-gost/x/config/parsing/auth"
|
||||
bypass_parser "github.com/go-gost/x/config/parsing/bypass"
|
||||
hop_parser "github.com/go-gost/x/config/parsing/hop"
|
||||
logger_parser "github.com/go-gost/x/config/parsing/logger"
|
||||
selector_parser "github.com/go-gost/x/config/parsing/selector"
|
||||
xnet "github.com/go-gost/x/internal/net"
|
||||
tls_util "github.com/go-gost/x/internal/util/tls"
|
||||
@ -42,10 +43,11 @@ func ParseService(cfg *config.ServiceConfig) (service.Service, error) {
|
||||
}
|
||||
}
|
||||
|
||||
log := registry.LoggerRegistry().Get(cfg.Logger)
|
||||
if log == nil {
|
||||
log = logger.Default()
|
||||
log := logger.Default()
|
||||
if loggers := logger_parser.List(cfg.Logger, cfg.Loggers...); len(loggers) > 0 {
|
||||
log = logger.LoggerGroup(loggers...)
|
||||
}
|
||||
|
||||
serviceLogger := log.WithFields(map[string]any{
|
||||
"kind": "service",
|
||||
"service": cfg.Name,
|
||||
|
Reference in New Issue
Block a user