Skip to content

Commit 7ac181c

Browse files
committed
feat(logger): migrate to Go's slog structured logger
1 parent 8f35897 commit 7ac181c

27 files changed

+223
-390
lines changed

internal/engines/keys/keys.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
"github.com/Permify/permify/internal/storage"
1515
"github.com/Permify/permify/pkg/attribute"
1616
"github.com/Permify/permify/pkg/cache"
17-
"github.com/Permify/permify/pkg/logger"
1817
base "github.com/Permify/permify/pkg/pb/base/v1"
1918
"github.com/Permify/permify/pkg/tuple"
2019
)
@@ -25,17 +24,15 @@ type CheckEngineWithKeys struct {
2524
schemaReader storage.SchemaReader
2625
checker invoke.Check
2726
cache cache.Cache
28-
l *logger.Logger
2927
}
3028

3129
// NewCheckEngineWithKeys creates a new instance of EngineKeyManager by initializing an EngineKeys
3230
// struct with the provided cache.Cache instance.
33-
func NewCheckEngineWithKeys(checker invoke.Check, schemaReader storage.SchemaReader, cache cache.Cache, l *logger.Logger) invoke.Check {
31+
func NewCheckEngineWithKeys(checker invoke.Check, schemaReader storage.SchemaReader, cache cache.Cache) invoke.Check {
3432
return &CheckEngineWithKeys{
3533
schemaReader: schemaReader,
3634
checker: checker,
3735
cache: cache,
38-
l: l,
3936
}
4037
}
4138

internal/factories/storage.go

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,110 +7,109 @@ import (
77
"github.com/Permify/permify/pkg/database"
88
MMDatabase "github.com/Permify/permify/pkg/database/memory"
99
PQDatabase "github.com/Permify/permify/pkg/database/postgres"
10-
"github.com/Permify/permify/pkg/logger"
1110
)
1211

1312
// DataReaderFactory creates and returns a DataReader based on the database engine type.
14-
func DataReaderFactory(db database.Database, logger logger.Interface) (repo storage.DataReader) {
13+
func DataReaderFactory(db database.Database) (repo storage.DataReader) {
1514
switch db.GetEngineType() {
1615
case "postgres":
1716
// If the database engine is Postgres, create a new DataReader using the Postgres implementation
18-
return PQRepository.NewDataReader(db.(*PQDatabase.Postgres), logger)
17+
return PQRepository.NewDataReader(db.(*PQDatabase.Postgres))
1918
case "memory":
2019
// If the database engine is in-memory, create a new DataReader using the in-memory implementation
21-
return MMRepository.NewDataReader(db.(*MMDatabase.Memory), logger)
20+
return MMRepository.NewDataReader(db.(*MMDatabase.Memory))
2221
default:
2322
// For any other type, use the in-memory implementation as a default
24-
return MMRepository.NewDataReader(db.(*MMDatabase.Memory), logger)
23+
return MMRepository.NewDataReader(db.(*MMDatabase.Memory))
2524
}
2625
}
2726

2827
// DataWriterFactory creates and returns a DataWriter based on the database engine type.
29-
func DataWriterFactory(db database.Database, logger logger.Interface) (repo storage.DataWriter) {
28+
func DataWriterFactory(db database.Database) (repo storage.DataWriter) {
3029
switch db.GetEngineType() {
3130
case "postgres":
3231
// If the database engine is Postgres, create a new DataWriter using the Postgres implementation
33-
return PQRepository.NewDataWriter(db.(*PQDatabase.Postgres), logger)
32+
return PQRepository.NewDataWriter(db.(*PQDatabase.Postgres))
3433
case "memory":
3534
// If the database engine is in-memory, create a new DataWriter using the in-memory implementation
36-
return MMRepository.NewDataWriter(db.(*MMDatabase.Memory), logger)
35+
return MMRepository.NewDataWriter(db.(*MMDatabase.Memory))
3736
default:
3837
// For any other type, use the in-memory implementation as a default
39-
return MMRepository.NewDataWriter(db.(*MMDatabase.Memory), logger)
38+
return MMRepository.NewDataWriter(db.(*MMDatabase.Memory))
4039
}
4140
}
4241

4342
// SchemaReaderFactory creates and returns a SchemaReader based on the database engine type.
44-
func SchemaReaderFactory(db database.Database, logger logger.Interface) (repo storage.SchemaReader) {
43+
func SchemaReaderFactory(db database.Database) (repo storage.SchemaReader) {
4544
switch db.GetEngineType() {
4645
case "postgres":
4746
// If the database engine is Postgres, create a new SchemaReader using the Postgres implementation
48-
return PQRepository.NewSchemaReader(db.(*PQDatabase.Postgres), logger)
47+
return PQRepository.NewSchemaReader(db.(*PQDatabase.Postgres))
4948
case "memory":
5049
// If the database engine is in-memory, create a new SchemaReader using the in-memory implementation
51-
return MMRepository.NewSchemaReader(db.(*MMDatabase.Memory), logger)
50+
return MMRepository.NewSchemaReader(db.(*MMDatabase.Memory))
5251
default:
5352
// For any other type, use the in-memory implementation as a default
54-
return MMRepository.NewSchemaReader(db.(*MMDatabase.Memory), logger)
53+
return MMRepository.NewSchemaReader(db.(*MMDatabase.Memory))
5554
}
5655
}
5756

5857
// WatcherFactory creates and returns a Watcher based on the database engine type.
59-
func WatcherFactory(db database.Database, logger logger.Interface) (repo storage.Watcher) {
58+
func WatcherFactory(db database.Database) (repo storage.Watcher) {
6059
switch db.GetEngineType() {
6160
case "postgres":
6261
// If the database engine is Postgres, create a new Watcher using the Postgres implementation
63-
return PQRepository.NewWatcher(db.(*PQDatabase.Postgres), logger)
62+
return PQRepository.NewWatcher(db.(*PQDatabase.Postgres))
6463
case "memory":
6564
// If the database engine is in-memory, create a new Watcher using the in-memory implementation
66-
return MMRepository.NewWatcher(db.(*MMDatabase.Memory), logger)
65+
return MMRepository.NewWatcher(db.(*MMDatabase.Memory))
6766
default:
6867
// For any other type, use the in-memory implementation as a default
69-
return MMRepository.NewWatcher(db.(*MMDatabase.Memory), logger)
68+
return MMRepository.NewWatcher(db.(*MMDatabase.Memory))
7069
}
7170
}
7271

7372
// SchemaWriterFactory creates and returns a SchemaWriter based on the database engine type.
74-
func SchemaWriterFactory(db database.Database, logger logger.Interface) (repo storage.SchemaWriter) {
73+
func SchemaWriterFactory(db database.Database) (repo storage.SchemaWriter) {
7574
switch db.GetEngineType() {
7675
case "postgres":
7776
// If the database engine is Postgres, create a new SchemaWriter using the Postgres implementation
78-
return PQRepository.NewSchemaWriter(db.(*PQDatabase.Postgres), logger)
77+
return PQRepository.NewSchemaWriter(db.(*PQDatabase.Postgres))
7978
case "memory":
8079
// If the database engine is in-memory, create a new SchemaWriter using the in-memory implementation
81-
return MMRepository.NewSchemaWriter(db.(*MMDatabase.Memory), logger)
80+
return MMRepository.NewSchemaWriter(db.(*MMDatabase.Memory))
8281
default:
8382
// For any other type, use the in-memory implementation as a default
84-
return MMRepository.NewSchemaWriter(db.(*MMDatabase.Memory), logger)
83+
return MMRepository.NewSchemaWriter(db.(*MMDatabase.Memory))
8584
}
8685
}
8786

8887
// TenantReaderFactory creates and returns a TenantReader based on the database engine type.
89-
func TenantReaderFactory(db database.Database, logger logger.Interface) (repo storage.TenantReader) {
88+
func TenantReaderFactory(db database.Database) (repo storage.TenantReader) {
9089
switch db.GetEngineType() {
9190
case "postgres":
9291
// If the database engine is Postgres, create a new TenantReader using the Postgres implementation
93-
return PQRepository.NewTenantReader(db.(*PQDatabase.Postgres), logger)
92+
return PQRepository.NewTenantReader(db.(*PQDatabase.Postgres))
9493
case "memory":
9594
// If the database engine is in-memory, create a new TenantReader using the in-memory implementation
96-
return MMRepository.NewTenantReader(db.(*MMDatabase.Memory), logger)
95+
return MMRepository.NewTenantReader(db.(*MMDatabase.Memory))
9796
default:
9897
// For any other type, use the in-memory implementation as a default
99-
return MMRepository.NewTenantReader(db.(*MMDatabase.Memory), logger)
98+
return MMRepository.NewTenantReader(db.(*MMDatabase.Memory))
10099
}
101100
}
102101

103102
// TenantWriterFactory creates and returns a TenantWriter based on the database engine type.
104-
func TenantWriterFactory(db database.Database, logger logger.Interface) (repo storage.TenantWriter) {
103+
func TenantWriterFactory(db database.Database) (repo storage.TenantWriter) {
105104
switch db.GetEngineType() {
106105
case "postgres":
107106
// If the database engine is Postgres, create a new TenantWriter using the Postgres implementation
108-
return PQRepository.NewTenantWriter(db.(*PQDatabase.Postgres), logger)
107+
return PQRepository.NewTenantWriter(db.(*PQDatabase.Postgres))
109108
case "memory":
110109
// If the database engine is in-memory, create a new TenantWriter using the in-memory implementation
111-
return MMRepository.NewTenantWriter(db.(*MMDatabase.Memory), logger)
110+
return MMRepository.NewTenantWriter(db.(*MMDatabase.Memory))
112111
default:
113112
// For any other type, use the in-memory implementation as a default
114-
return MMRepository.NewTenantWriter(db.(*MMDatabase.Memory), logger)
113+
return MMRepository.NewTenantWriter(db.(*MMDatabase.Memory))
115114
}
116115
}

internal/servers/dataServer.go

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package servers
22

33
import (
4+
"log/slog"
5+
46
"google.golang.org/grpc/status"
57

68
otelCodes "go.opentelemetry.io/otel/codes"
@@ -9,32 +11,28 @@ import (
911
"github.com/Permify/permify/internal/storage"
1012
"github.com/Permify/permify/internal/validation"
1113
"github.com/Permify/permify/pkg/database"
12-
"github.com/Permify/permify/pkg/logger"
1314
v1 "github.com/Permify/permify/pkg/pb/base/v1"
1415
)
1516

1617
// DataServer - Structure for Data Server
1718
type DataServer struct {
1819
v1.UnimplementedDataServer
1920

20-
sr storage.SchemaReader
21-
dr storage.DataReader
22-
dw storage.DataWriter
23-
logger logger.Interface
21+
sr storage.SchemaReader
22+
dr storage.DataReader
23+
dw storage.DataWriter
2424
}
2525

2626
// NewDataServer - Creates new Data Server
2727
func NewDataServer(
2828
dr storage.DataReader,
2929
dw storage.DataWriter,
3030
sr storage.SchemaReader,
31-
l logger.Interface,
3231
) *DataServer {
3332
return &DataServer{
34-
dr: dr,
35-
dw: dw,
36-
sr: sr,
37-
logger: l,
33+
dr: dr,
34+
dw: dw,
35+
sr: sr,
3836
}
3937
}
4038

@@ -70,7 +68,7 @@ func (r *DataServer) ReadRelationships(ctx context.Context, request *v1.Relation
7068
if err != nil {
7169
span.RecordError(err)
7270
span.SetStatus(otelCodes.Error, err.Error())
73-
r.logger.Error(err.Error())
71+
slog.Error(err.Error())
7472
return nil, status.Error(GetStatus(err), err.Error())
7573
}
7674

@@ -112,7 +110,7 @@ func (r *DataServer) ReadAttributes(ctx context.Context, request *v1.AttributeRe
112110
if err != nil {
113111
span.RecordError(err)
114112
span.SetStatus(otelCodes.Error, err.Error())
115-
r.logger.Error(err.Error())
113+
slog.Error(err.Error())
116114
return nil, status.Error(GetStatus(err), err.Error())
117115
}
118116

@@ -187,7 +185,7 @@ func (r *DataServer) Write(ctx context.Context, request *v1.DataWriteRequest) (*
187185
if err != nil {
188186
span.RecordError(err)
189187
span.SetStatus(otelCodes.Error, err.Error())
190-
r.logger.Error(err.Error())
188+
slog.Error(err.Error())
191189
return nil, status.Error(GetStatus(err), err.Error())
192190
}
193191

@@ -241,7 +239,7 @@ func (r *DataServer) WriteRelationships(ctx context.Context, request *v1.Relatio
241239
if err != nil {
242240
span.RecordError(err)
243241
span.SetStatus(otelCodes.Error, err.Error())
244-
r.logger.Error(err.Error())
242+
slog.Error(err.Error())
245243
return nil, status.Error(GetStatus(err), err.Error())
246244
}
247245

@@ -269,7 +267,7 @@ func (r *DataServer) Delete(ctx context.Context, request *v1.DataDeleteRequest)
269267
if err != nil {
270268
span.RecordError(err)
271269
span.SetStatus(otelCodes.Error, err.Error())
272-
r.logger.Error(err.Error())
270+
slog.Error(err.Error())
273271
return nil, status.Error(GetStatus(err), err.Error())
274272
}
275273

@@ -297,7 +295,7 @@ func (r *DataServer) DeleteRelationships(ctx context.Context, request *v1.Relati
297295
if err != nil {
298296
span.RecordError(err)
299297
span.SetStatus(otelCodes.Error, err.Error())
300-
r.logger.Error(err.Error())
298+
slog.Error(err.Error())
301299
return nil, status.Error(GetStatus(err), err.Error())
302300
}
303301

internal/servers/permissionServer.go

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package servers
22

33
import (
4+
"log/slog"
5+
46
otelCodes "go.opentelemetry.io/otel/codes"
57
"golang.org/x/net/context"
68
"google.golang.org/grpc/status"
79

810
"github.com/Permify/permify/internal/invoke"
9-
"github.com/Permify/permify/pkg/logger"
1011
v1 "github.com/Permify/permify/pkg/pb/base/v1"
1112
)
1213

@@ -15,14 +16,12 @@ type PermissionServer struct {
1516
v1.UnimplementedPermissionServer
1617

1718
invoker invoke.Invoker
18-
logger logger.Interface
1919
}
2020

2121
// NewPermissionServer - Creates new Permission Server
22-
func NewPermissionServer(i invoke.Invoker, l logger.Interface) *PermissionServer {
22+
func NewPermissionServer(i invoke.Invoker) *PermissionServer {
2323
return &PermissionServer{
2424
invoker: i,
25-
logger: l,
2625
}
2726
}
2827

@@ -40,7 +39,7 @@ func (r *PermissionServer) Check(ctx context.Context, request *v1.PermissionChec
4039
if err != nil {
4140
span.RecordError(err)
4241
span.SetStatus(otelCodes.Error, err.Error())
43-
r.logger.Error(err.Error())
42+
slog.Error(err.Error())
4443
return nil, status.Error(GetStatus(err), err.Error())
4544
}
4645

@@ -61,7 +60,7 @@ func (r *PermissionServer) Expand(ctx context.Context, request *v1.PermissionExp
6160
if err != nil {
6261
span.RecordError(err)
6362
span.SetStatus(otelCodes.Error, err.Error())
64-
r.logger.Error(err.Error())
63+
slog.Error(err.Error())
6564
return nil, status.Error(GetStatus(err), err.Error())
6665
}
6766

@@ -82,7 +81,7 @@ func (r *PermissionServer) LookupEntity(ctx context.Context, request *v1.Permiss
8281
if err != nil {
8382
span.RecordError(err)
8483
span.SetStatus(otelCodes.Error, err.Error())
85-
r.logger.Error(err.Error())
84+
slog.Error(err.Error())
8685
return nil, status.Error(GetStatus(err), err.Error())
8786
}
8887

@@ -103,7 +102,7 @@ func (r *PermissionServer) LookupEntityStream(request *v1.PermissionLookupEntity
103102
if err != nil {
104103
span.RecordError(err)
105104
span.SetStatus(otelCodes.Error, err.Error())
106-
r.logger.Error(err.Error())
105+
slog.Error(err.Error())
107106
return status.Error(GetStatus(err), err.Error())
108107
}
109108

@@ -124,7 +123,7 @@ func (r *PermissionServer) LookupSubject(ctx context.Context, request *v1.Permis
124123
if err != nil {
125124
span.RecordError(err)
126125
span.SetStatus(otelCodes.Error, err.Error())
127-
r.logger.Error(err.Error())
126+
slog.Error(err.Error())
128127
return nil, status.Error(GetStatus(err), err.Error())
129128
}
130129

@@ -145,7 +144,7 @@ func (r *PermissionServer) SubjectPermission(ctx context.Context, request *v1.Pe
145144
if err != nil {
146145
span.RecordError(err)
147146
span.SetStatus(otelCodes.Error, err.Error())
148-
r.logger.Error(err.Error())
147+
slog.Error(err.Error())
149148
return nil, status.Error(GetStatus(err), err.Error())
150149
}
151150

0 commit comments

Comments
 (0)