Skip to content

Commit 86d7858

Browse files
committed
change log folders
1 parent 8c965e4 commit 86d7858

7 files changed

Lines changed: 29 additions & 30 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
build
2+
.vscode
23

34
# GOOGLE API KEY
45
secret.json

backend/cmd/main.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,6 @@ func main() {
164164
fmt.Println(packet.Id())
165165
switch p := packet.Packet.(type) {
166166
case *data.Packet:
167-
fmt.Println("DATA REACHED")
168-
169167
update := updateFactory.NewUpdate(p)
170168
dataTransfer.Update(update)
171169

@@ -174,17 +172,13 @@ func main() {
174172
})
175173

176174
case *info_packet.Packet:
177-
fmt.Println("INFO REACHED")
178-
179175
messageTransfer.SendMessage(p)
180176

181177
loggerHandler.PushRecord(&messages_logger.Record{
182178
Packet: p,
183179
})
184180

185181
case *protection.Packet:
186-
fmt.Println("PROTECTION REACHED")
187-
188182
messageTransfer.SendMessage(p)
189183

190184
packet := info_packet.NewPacket(p.Id())
@@ -202,8 +196,6 @@ func main() {
202196
}
203197

204198
case *state.Space:
205-
fmt.Println("STATE REACHED")
206-
207199
loggerHandler.PushRecord(&state_logger.Record{
208200
Packet: p,
209201
})

backend/pkg/logger/data/logger.go

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ type Logger struct {
2525
// An atomic boolean is used in order to use CompareAndSwap in the Start and Stop methods
2626
running *atomic.Bool
2727
fileLock *sync.RWMutex
28-
// initialTime fixes the starting time of the log
29-
initialTime time.Time
3028
// valueFileSlice is a map that contains the file of each value
3129
valueFileSlice map[data.ValueName]io.WriteCloser
3230
}
@@ -56,7 +54,6 @@ func (sublogger *Logger) Start() error {
5654
fmt.Println("Logger already running")
5755
return nil
5856
}
59-
sublogger.initialTime = time.Now()
6057

6158
fmt.Println("Logger started")
6259
return nil
@@ -96,26 +93,22 @@ func (sublogger *Logger) PushRecord(record abstraction.LoggerRecord) error {
9693
timestamp := dataRecord.Packet.Timestamp()
9794

9895
var val string
99-
var valType string
10096

10197
switch v := value.(type) {
10298
case numeric:
10399
val = strconv.FormatFloat(v.Value(), 'f', -1, 64)
104-
valType = "numeric"
105100

106101
case data.BooleanValue:
107102
val = strconv.FormatBool(v.Value())
108-
valType = "boolean"
109103

110104
case data.EnumValue:
111105
val = string(v.Variant())
112-
valType = "enum"
113106
}
114107

115108
file, ok := sublogger.valueFileSlice[valueName]
116109
if !ok {
117-
filename := fmt.Sprintf("%s_%s.csv", valueName, dataRecord.Packet.Timestamp().Format(time.RFC3339))
118-
f, err := os.Create(path.Join("../pkg/logger/data", valType, filename))
110+
filename := fmt.Sprintf("%s_%s.csv", valueName, logger.Timestamp.Format(time.RFC3339))
111+
f, err := os.Create(path.Join("logger/data", filename))
119112
if err != nil {
120113
return &logger.ErrCreatingFile{
121114
Name: Name,

backend/pkg/logger/logger.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ package logger
33
import (
44
"encoding/json"
55
"fmt"
6+
"os"
7+
"path"
68
"sync"
79
"sync/atomic"
10+
"time"
811

912
wsModels "github.com/HyperloopUPV-H8/h9-backend/internal/ws_handle/models"
1013
"github.com/HyperloopUPV-H8/h9-backend/pkg/abstraction"
@@ -25,6 +28,8 @@ type Logger struct {
2528

2629
var _ abstraction.Logger = &Logger{}
2730

31+
var Timestamp time.Time = time.Now()
32+
2833
func (Logger) HandlerName() string {
2934
return HandlerName
3035
}
@@ -62,6 +67,11 @@ func (logger *Logger) Start() error {
6267
return nil
6368
}
6469

70+
// Create log folders
71+
for l := range logger.subloggers {
72+
os.MkdirAll(path.Join("logger", fmt.Sprintf("%s_%s", l, time.Now().Format(time.RFC3339))), os.ModePerm)
73+
}
74+
6575
logger.subloggersLock.Lock()
6676
defer logger.subloggersLock.Unlock()
6777

backend/pkg/logger/messages/logger.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ type Logger struct {
2323
// An atomic boolean is used in order to use CompareAndSwap in the Start and Stop methods
2424
running *atomic.Bool
2525
fileLock *sync.RWMutex
26-
// initialTime fixes the starting time of the log
27-
initialTime time.Time
2826
// infoIdMap is a map that contains the file of each info packet
2927
infoIdMap map[abstraction.BoardId]io.WriteCloser
3028
// BoardNames is a map that contains the common name of each board
@@ -54,7 +52,6 @@ func (sublogger *Logger) Start() error {
5452
fmt.Println("Logger already running")
5553
return nil
5654
}
57-
sublogger.initialTime = time.Now()
5855

5956
fmt.Println("Logger started")
6057
return nil
@@ -95,8 +92,9 @@ func (sublogger *Logger) PushRecord(record abstraction.LoggerRecord) error {
9592
boardName = fmt.Sprint(boardId)
9693
}
9794

98-
filename := fmt.Sprintf(boardName + "_" + timestamp + ".csv")
99-
f, err := os.Create(path.Join("../pkg/logger/messages", filename))
95+
filename := path.Join("logger/messages", fmt.Sprintf(boardName+"_"+logger.Timestamp.Format(time.RFC3339)+".csv"))
96+
os.MkdirAll(path.Dir(filename), os.ModePerm)
97+
f, err := os.Create(filename)
10098
if err != nil {
10199
return &logger.ErrCreatingFile{
102100
Name: Name,
@@ -109,11 +107,13 @@ func (sublogger *Logger) PushRecord(record abstraction.LoggerRecord) error {
109107
}
110108
writer := csv.NewWriter(file)
111109
defer writer.Flush()
110+
defer file.Close()
112111

113112
err := writer.Write([]string{timestamp, msg})
114113
if err != nil {
115114
writerErr = err
116115
}
116+
117117
return writerErr
118118
}
119119

backend/pkg/logger/order/logger.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@ type Logger struct {
2323
// An atomic boolean is used in order to use CompareAndSwap in the Start and Stop methods
2424
running *atomic.Bool
2525
fileLock *sync.RWMutex
26-
// initialTime fixes the starting time of the log
27-
initialTime time.Time
28-
writer io.WriteCloser
26+
writer io.WriteCloser
2927
}
3028

3129
type Record struct {
@@ -48,10 +46,10 @@ func (sublogger *Logger) Start() error {
4846
fmt.Println("Logger already running")
4947
return nil
5048
}
51-
sublogger.initialTime = time.Now()
5249

53-
filename := fmt.Sprintf("order_" + sublogger.initialTime.Format(time.RFC3339) + ".csv")
54-
file, err := os.Create(path.Join("../pkg/logger/order", filename))
50+
filepath := path.Join("logger/order", fmt.Sprint(logger.Timestamp.Format(time.RFC3339)+".csv"))
51+
os.MkdirAll(path.Dir(filepath), os.ModePerm)
52+
file, err := os.Create(filepath)
5553
if err != nil {
5654
return &logger.ErrCreatingFile{
5755
Name: Name,
@@ -87,12 +85,14 @@ func (sublogger *Logger) PushRecord(record abstraction.LoggerRecord) error {
8785
defer sublogger.fileLock.Unlock()
8886

8987
csvWriter := csv.NewWriter(sublogger.writer)
88+
defer csvWriter.Flush()
89+
defer sublogger.writer.Close()
90+
9091
err := csvWriter.Write([]string{time.Now().Format(time.RFC3339), fmt.Sprint(orderRecord.Packet.GetValues())})
9192
if err != nil {
9293
return err
9394
}
9495

95-
defer csvWriter.Flush()
9696
return nil
9797
}
9898

backend/pkg/logger/state/logger.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"encoding/csv"
55
"fmt"
66
"os"
7+
"path"
78
"sync/atomic"
89
"time"
910

@@ -63,7 +64,9 @@ func (sublogger *Logger) PushRecord(record abstraction.LoggerRecord) error {
6364
}
6465
}
6566

66-
file, err := os.Create(fmt.Sprintf("state_" + time.Now().Format(time.RFC3339) + ".csv"))
67+
filepath := fmt.Sprint("logger/state/state_" + logger.Timestamp.Format(time.RFC3339) + ".csv")
68+
os.MkdirAll(path.Dir(filepath), os.ModePerm)
69+
file, err := os.Create(filepath)
6770
if err != nil {
6871
return &logger.ErrCreatingFile{
6972
Name: Name,

0 commit comments

Comments
 (0)