Skip to content

Commit 05fa778

Browse files
committed
Refactoring: Serialize some data classes as JSON in log
1 parent 017914e commit 05fa778

File tree

5 files changed

+38
-7
lines changed

5 files changed

+38
-7
lines changed

internal/app/engine/config.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,12 @@ func (m *Config) WriteTo(fileName string) (err error) {
7272
log.Printf("Written to %v", fileName)
7373
return
7474
}
75+
76+
func (m *Config) StringJson() string {
77+
marshaler := jsonpb.Marshaler{}
78+
if str, err := marshaler.MarshalToString(m); err != nil {
79+
return err.Error()
80+
} else {
81+
return str
82+
}
83+
}

internal/app/engine/engine.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ func (e *Engine) ResetMatch() {
232232
func (e *Engine) processChange(change *statemachine.Change) {
233233
e.mutex.Lock()
234234
defer e.mutex.Unlock()
235-
log.Printf("Engine: Process change '%v'", change)
235+
log.Printf("Engine: Process change '%v'", change.StringJson())
236236

237237
var newChanges []*statemachine.Change
238238
entry := statemachine.StateChange{}
@@ -294,7 +294,7 @@ func (e *Engine) processChange(change *statemachine.Change) {
294294
}
295295
}
296296

297-
log.Printf("Change '%v' processed", change)
297+
log.Printf("Change '%v' processed", change.StringJson())
298298
}
299299

300300
// initialStateFromStore gets the current state or returns a new default state
@@ -342,7 +342,7 @@ func (e *Engine) GetConfig() *Config {
342342
func (e *Engine) UpdateConfig(delta *Config) {
343343
e.mutex.Lock()
344344
defer e.mutex.Unlock()
345-
log.Printf("Process config delta change %v", delta)
345+
log.Printf("Process config delta change %v", delta.StringJson())
346346
for k, v := range delta.GameEventBehavior {
347347
e.config.GameEventBehavior[k] = v
348348
}
@@ -355,7 +355,7 @@ func (e *Engine) UpdateConfig(delta *Config) {
355355
e.config.AutoRefConfigs[autoRef].GameEventBehavior[k] = v
356356
}
357357
}
358-
log.Printf("Engine config updated to %v", e.config)
358+
log.Printf("Engine config updated to %v", e.config.StringJson())
359359
if err := e.config.WriteTo(e.engineConfig.ConfigFilename); err != nil {
360360
log.Printf("Could not write engine config: %v", err)
361361
}

internal/app/state/state.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package state
22

33
import (
4+
"github.com/golang/protobuf/jsonpb"
45
"github.com/golang/protobuf/proto"
56
"github.com/golang/protobuf/ptypes/duration"
67
"github.com/golang/protobuf/ptypes/timestamp"
@@ -54,3 +55,12 @@ func (m *State) TeamByName(name string) Team {
5455
}
5556
return Team_UNKNOWN
5657
}
58+
59+
func (m *State) StringJson() string {
60+
marshaler := jsonpb.Marshaler{}
61+
if str, err := marshaler.MarshalToString(m); err != nil {
62+
return err.Error()
63+
} else {
64+
return str
65+
}
66+
}

internal/app/statemachine/change.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package statemachine
2+
3+
import "github.com/golang/protobuf/jsonpb"
4+
5+
func (m *Change) StringJson() string {
6+
marshaler := jsonpb.Marshaler{}
7+
if str, err := marshaler.MarshalToString(m); err != nil {
8+
return err.Error()
9+
} else {
10+
return str
11+
}
12+
}

internal/app/statemachine/statemachine.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func (s *StateMachine) Process(currentState *state.State, change *Change) (newSt
5656

5757
newState = new(state.State)
5858
proto.Merge(newState, currentState)
59-
log.Printf("Processing change '%v'", change)
59+
log.Printf("Processing change '%v'", change.StringJson())
6060
if change.GetNewCommand() != nil {
6161
newChanges = s.processChangeNewCommand(newState, change.GetNewCommand())
6262
} else if change.GetChangeStage() != nil {
@@ -90,14 +90,14 @@ func (s *StateMachine) Process(currentState *state.State, change *Change) (newSt
9090
} else if change.GetAcceptProposalGroup() != nil {
9191
newChanges = s.processChangeAcceptProposals(newState, change.GetAcceptProposalGroup())
9292
} else {
93-
log.Println("Unhandled change in state machine: ", change)
93+
log.Println("Unhandled change in state machine: ", change.StringJson())
9494
}
9595

9696
for i := range newChanges {
9797
newChanges[i].Origin = new(string)
9898
*newChanges[i].Origin = changeOriginStateMachine
9999
}
100-
log.Printf("Change '%v' processed:\nfrom: %v\n to: %v", change, currentState, newState)
100+
log.Printf("Change '%v' processed:\nfrom: %v\n to: %v", change.StringJson(), currentState.StringJson(), newState.StringJson())
101101

102102
return
103103
}

0 commit comments

Comments
 (0)