logger: extend interface, fix tests
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
parent
d3bb2f7236
commit
81b9a4341f
@ -57,7 +57,9 @@ type Logger interface {
|
|||||||
Log(ctx context.Context, level Level, args ...interface{})
|
Log(ctx context.Context, level Level, args ...interface{})
|
||||||
// Logf logs message with needed level
|
// Logf logs message with needed level
|
||||||
Logf(ctx context.Context, level Level, msg string, args ...interface{})
|
Logf(ctx context.Context, level Level, msg string, args ...interface{})
|
||||||
// String returns the name of logger
|
// Name returns broker instance name
|
||||||
|
Name() string
|
||||||
|
// String returns the type of logger
|
||||||
String() string
|
String() string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,11 +13,15 @@ func NewLogger(opts ...Option) Logger {
|
|||||||
return &noopLogger{opts: options}
|
return &noopLogger{opts: options}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *noopLogger) V(lvl Level) bool {
|
func (l *noopLogger) V(_ Level) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *noopLogger) Level(lvl Level) {
|
func (l *noopLogger) Level(_ Level) {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *noopLogger) Name() string {
|
||||||
|
return l.opts.Name
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *noopLogger) Init(opts ...Option) error {
|
func (l *noopLogger) Init(opts ...Option) error {
|
||||||
@ -35,7 +39,7 @@ func (l *noopLogger) Clone(opts ...Option) Logger {
|
|||||||
return nl
|
return nl
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *noopLogger) Fields(attrs ...interface{}) Logger {
|
func (l *noopLogger) Fields(_ ...interface{}) Logger {
|
||||||
return l
|
return l
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -368,6 +368,10 @@ func (s *slogLogger) Warnf(ctx context.Context, msg string, attrs ...interface{}
|
|||||||
_ = s.slog.Handler().Handle(ctx, r)
|
_ = s.slog.Handler().Handle(ctx, r)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *slogLogger) Name() string {
|
||||||
|
return s.opts.Name
|
||||||
|
}
|
||||||
|
|
||||||
func (s *slogLogger) String() string {
|
func (s *slogLogger) String() string {
|
||||||
return "slog"
|
return "slog"
|
||||||
}
|
}
|
||||||
|
94
service.go
94
service.go
@ -7,15 +7,11 @@ import (
|
|||||||
|
|
||||||
"go.unistack.org/micro/v3/broker"
|
"go.unistack.org/micro/v3/broker"
|
||||||
"go.unistack.org/micro/v3/client"
|
"go.unistack.org/micro/v3/client"
|
||||||
"go.unistack.org/micro/v3/codec"
|
|
||||||
"go.unistack.org/micro/v3/config"
|
"go.unistack.org/micro/v3/config"
|
||||||
"go.unistack.org/micro/v3/flow"
|
|
||||||
"go.unistack.org/micro/v3/logger"
|
"go.unistack.org/micro/v3/logger"
|
||||||
"go.unistack.org/micro/v3/meter"
|
"go.unistack.org/micro/v3/meter"
|
||||||
"go.unistack.org/micro/v3/register"
|
"go.unistack.org/micro/v3/register"
|
||||||
"go.unistack.org/micro/v3/resolver"
|
|
||||||
"go.unistack.org/micro/v3/router"
|
"go.unistack.org/micro/v3/router"
|
||||||
"go.unistack.org/micro/v3/selector"
|
|
||||||
"go.unistack.org/micro/v3/server"
|
"go.unistack.org/micro/v3/server"
|
||||||
"go.unistack.org/micro/v3/store"
|
"go.unistack.org/micro/v3/store"
|
||||||
"go.unistack.org/micro/v3/tracer"
|
"go.unistack.org/micro/v3/tracer"
|
||||||
@ -380,97 +376,15 @@ func (s *service) Run() error {
|
|||||||
return s.Stop()
|
return s.Stop()
|
||||||
}
|
}
|
||||||
|
|
||||||
func getNameIndex(n string, ifaces interface{}) int {
|
type Namer interface {
|
||||||
type namer interface {
|
|
||||||
Name() string
|
Name() string
|
||||||
}
|
}
|
||||||
|
|
||||||
switch vt := ifaces.(type) {
|
func getNameIndex[T Namer](n string, ifaces []T) int {
|
||||||
case []broker.Broker:
|
for idx, iface := range ifaces {
|
||||||
for idx, iface := range vt {
|
if iface.Name() == n {
|
||||||
if nm, ok := iface.(namer); ok && nm.Name() == n {
|
|
||||||
return idx
|
return idx
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case []client.Client:
|
|
||||||
for idx, iface := range vt {
|
|
||||||
if nm, ok := iface.(namer); ok && nm.Name() == n {
|
|
||||||
return idx
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case []codec.Codec:
|
|
||||||
for idx, iface := range vt {
|
|
||||||
if nm, ok := iface.(namer); ok && nm.Name() == n {
|
|
||||||
return idx
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case []config.Config:
|
|
||||||
for idx, iface := range vt {
|
|
||||||
if nm, ok := iface.(namer); ok && nm.Name() == n {
|
|
||||||
return idx
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case []flow.Flow:
|
|
||||||
for idx, iface := range vt {
|
|
||||||
if nm, ok := iface.(namer); ok && nm.Name() == n {
|
|
||||||
return idx
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case []logger.Logger:
|
|
||||||
for idx, iface := range vt {
|
|
||||||
if nm, ok := iface.(namer); ok && nm.Name() == n {
|
|
||||||
return idx
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case []meter.Meter:
|
|
||||||
for idx, iface := range vt {
|
|
||||||
if nm, ok := iface.(namer); ok && nm.Name() == n {
|
|
||||||
return idx
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case []register.Register:
|
|
||||||
for idx, iface := range vt {
|
|
||||||
if nm, ok := iface.(namer); ok && nm.Name() == n {
|
|
||||||
return idx
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case []resolver.Resolver:
|
|
||||||
for idx, iface := range vt {
|
|
||||||
if nm, ok := iface.(namer); ok && nm.Name() == n {
|
|
||||||
return idx
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case []router.Router:
|
|
||||||
for idx, iface := range vt {
|
|
||||||
if nm, ok := iface.(namer); ok && nm.Name() == n {
|
|
||||||
return idx
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case []selector.Selector:
|
|
||||||
for idx, iface := range vt {
|
|
||||||
if nm, ok := iface.(namer); ok && nm.Name() == n {
|
|
||||||
return idx
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case []server.Server:
|
|
||||||
for idx, iface := range vt {
|
|
||||||
if nm, ok := iface.(namer); ok && nm.Name() == n {
|
|
||||||
return idx
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case []store.Store:
|
|
||||||
for idx, iface := range vt {
|
|
||||||
if nm, ok := iface.(namer); ok && nm.Name() == n {
|
|
||||||
return idx
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case []tracer.Tracer:
|
|
||||||
for idx, iface := range vt {
|
|
||||||
if nm, ok := iface.(namer); ok && nm.Name() == n {
|
|
||||||
return idx
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
@ -41,6 +41,14 @@ func (ti *testItem) Name() string {
|
|||||||
return ti.name
|
return ti.name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Test_getNameIndex(t *testing.T) {
|
||||||
|
items := []*testItem{{name: "test1"}, {name: "test2"}}
|
||||||
|
idx := getNameIndex("test2", items)
|
||||||
|
if items[idx].Name() != "test2" {
|
||||||
|
t.Fatal("getNameIndex wrong")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestRegisterHandler(t *testing.T) {
|
func TestRegisterHandler(t *testing.T) {
|
||||||
type args struct {
|
type args struct {
|
||||||
s server.Server
|
s server.Server
|
||||||
|
@ -35,8 +35,8 @@ func TestUnmarshalJSON(t *testing.T) {
|
|||||||
err = json.Unmarshal([]byte(`{"ttl":"1y"}`), v)
|
err = json.Unmarshal([]byte(`{"ttl":"1y"}`), v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
} else if v.TTL != 31536000000000000 {
|
} else if v.TTL != 31622400000000000 {
|
||||||
t.Fatalf("invalid duration %v != 31536000000000000", v.TTL)
|
t.Fatalf("invalid duration %v != 31622400000000000", v.TTL)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,7 +55,7 @@ func TestParseDuration(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("ParseDuration error: %v", err)
|
t.Fatalf("ParseDuration error: %v", err)
|
||||||
}
|
}
|
||||||
if td.String() != "8760h0m0s" {
|
if td.String() != "8784h0m0s" {
|
||||||
t.Fatalf("ParseDuration 1y != 8760h0m0s : %s", td.String())
|
t.Fatalf("ParseDuration 1y != 8784h0m0s : %s", td.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user