Skip to content

Commit 563a30a

Browse files
committed
Improve logging and comments
1 parent e91cea7 commit 563a30a

File tree

7 files changed

+64
-88
lines changed

7 files changed

+64
-88
lines changed

Diff for: api/alarm.go

+23-20
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,16 @@ import (
88
"io/ioutil"
99
"log"
1010
"net/http"
11+
"os"
1112
"strconv"
1213

1314
"github.com/bb4L/rpi-radio-alarm-go-library/logging"
1415
"github.com/bb4L/rpi-radio-alarm-go-library/types"
1516
)
1617

17-
// Get all alarms
18+
var logger = logging.GetLogger("alarm", os.Stdout)
19+
20+
// GetAlarms gets all alarms
1821
func (helper *Helper) GetAlarms() ([]types.Alarm, error) {
1922
url := helper.AlarmURL + "/alarm"
2023
req, err := http.NewRequest("GET", url, nil)
@@ -23,10 +26,10 @@ func (helper *Helper) GetAlarms() ([]types.Alarm, error) {
2326
}
2427

2528
res, err := helper.prepareAndDoRequest(req)
26-
logging.GetInfoLogger().Println(res)
29+
logger.Println(res)
2730

2831
if err != nil {
29-
logging.GetErrorLogger().Println(err)
32+
logger.Println(err)
3033
return nil, err
3134
}
3235

@@ -40,14 +43,14 @@ func (helper *Helper) GetAlarms() ([]types.Alarm, error) {
4043
err = json.Unmarshal(jsonData, &data)
4144

4245
if err != nil {
43-
logging.GetErrorLogger().Println(err)
46+
logger.Println(err)
4447
return nil, err
4548
}
4649

4750
return data, nil
4851
}
4952

50-
// Get a specific alarm by index
53+
// GetAlarm gets a specific alarm by index
5154
func (helper *Helper) GetAlarm(idx int) (types.Alarm, error) {
5255
url := helper.AlarmURL + "/alarm/" + strconv.Itoa(idx)
5356
req, err := http.NewRequest("GET", url, nil)
@@ -56,10 +59,10 @@ func (helper *Helper) GetAlarm(idx int) (types.Alarm, error) {
5659
}
5760

5861
res, err := helper.prepareAndDoRequest(req)
59-
logging.GetInfoLogger().Println(res)
62+
logger.Println(res)
6063

6164
if err != nil {
62-
logging.GetErrorLogger().Println(err)
65+
logger.Println(err)
6366
return types.Alarm{}, err
6467
}
6568

@@ -73,14 +76,14 @@ func (helper *Helper) GetAlarm(idx int) (types.Alarm, error) {
7376
err = json.Unmarshal(jsonData, &data)
7477

7578
if err != nil {
76-
logging.GetErrorLogger().Println(err)
79+
logger.Println(err)
7780
return types.Alarm{}, err
7881
}
7982

8083
return data, nil
8184
}
8285

83-
// Change the alarm on the given index with the data of the passed instance
86+
// ChangeAlarm changes the alarm on the given index with the data of the passed instance
8487
func (helper *Helper) ChangeAlarm(alarm types.Alarm, idx int) (types.Alarm, error) {
8588
url := helper.AlarmURL + "/alarm/" + strconv.Itoa(idx)
8689

@@ -95,10 +98,10 @@ func (helper *Helper) ChangeAlarm(alarm types.Alarm, idx int) (types.Alarm, erro
9598
}
9699

97100
res, err := helper.prepareAndDoRequest(req)
98-
logging.GetInfoLogger().Println(res)
101+
logger.Println(res)
99102

100103
if err != nil {
101-
logging.GetErrorLogger().Println(err)
104+
logger.Println(err)
102105
return types.Alarm{}, err
103106
}
104107

@@ -112,14 +115,14 @@ func (helper *Helper) ChangeAlarm(alarm types.Alarm, idx int) (types.Alarm, erro
112115
err = json.Unmarshal(jsonData, &data)
113116

114117
if err != nil {
115-
logging.GetErrorLogger().Println(err)
118+
logger.Println(err)
116119
return types.Alarm{}, fmt.Errorf("could not unmarshal result")
117120
}
118121

119122
return data, nil
120123
}
121124

122-
// Adds the given alarm
125+
// AddAlarm adds the given alarm
123126
func (helper *Helper) AddAlarm(alarm types.Alarm) ([]types.Alarm, error) {
124127
url := helper.AlarmURL + "/alarm"
125128

@@ -135,9 +138,9 @@ func (helper *Helper) AddAlarm(alarm types.Alarm) ([]types.Alarm, error) {
135138
}
136139

137140
res, err := helper.prepareAndDoRequest(req)
138-
logging.GetInfoLogger().Println(res)
141+
logger.Println(res)
139142
if err != nil {
140-
logging.GetErrorLogger().Println(err)
143+
logger.Println(err)
141144
return nil, err
142145
}
143146

@@ -150,14 +153,14 @@ func (helper *Helper) AddAlarm(alarm types.Alarm) ([]types.Alarm, error) {
150153
var data []types.Alarm
151154
err = json.Unmarshal(jsonData, &data)
152155
if err != nil {
153-
logging.GetErrorLogger().Println(err)
156+
logger.Println(err)
154157
return nil, err
155158
}
156159

157160
return data, nil
158161
}
159162

160-
// Delete the alarm with the given index
163+
// DeleteAlarm deletes the alarm with the given index
161164
func (helper *Helper) DeleteAlarm(idx int) ([]types.Alarm, error) {
162165
url := helper.AlarmURL + "/alarm/" + strconv.Itoa(idx)
163166

@@ -167,9 +170,9 @@ func (helper *Helper) DeleteAlarm(idx int) ([]types.Alarm, error) {
167170
}
168171

169172
res, err := helper.prepareAndDoRequest(req)
170-
logging.GetInfoLogger().Println(res)
173+
logger.Println(res)
171174
if err != nil {
172-
logging.GetErrorLogger().Println(err)
175+
logger.Println(err)
173176
return nil, err
174177
}
175178

@@ -182,7 +185,7 @@ func (helper *Helper) DeleteAlarm(idx int) ([]types.Alarm, error) {
182185
var data []types.Alarm
183186
err = json.Unmarshal(jsonData, &data)
184187
if err != nil {
185-
logging.GetErrorLogger().Println(err)
188+
logger.Println(err)
186189
return nil, err
187190
}
188191

Diff for: api/helper.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import (
55
"net/http"
66
)
77

8-
// Struct to define the api settings being used
8+
// Helper struct to define the api settings being used
99
type Helper struct {
1010
AlarmURL string
1111
ExtraHeader string
1212
ExtreaHeaderValue string
1313
}
1414

15-
// Checks wether the api is reachable and returns 200 on the health endpoint
15+
// CheckHealth checks wether the api is reachable and returns 200 on the health endpoint
1616
func (helper *Helper) CheckHealth() error {
1717
url := helper.AlarmURL + "/health"
1818
req, err := http.NewRequest("GET", url, nil)

Diff for: api/radio.go

+12-13
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ import (
77
"io/ioutil"
88
"net/http"
99

10-
"github.com/bb4L/rpi-radio-alarm-go-library/logging"
1110
"github.com/bb4L/rpi-radio-alarm-go-library/types"
1211
)
1312

14-
// Get the radio status
13+
// GetRadio returns the radio status
1514
func (helper *Helper) GetRadio() (types.Radio, error) {
1615
url := helper.AlarmURL + "/radio"
1716
req, err := http.NewRequest("GET", url, nil)
@@ -20,10 +19,10 @@ func (helper *Helper) GetRadio() (types.Radio, error) {
2019
}
2120

2221
res, err := helper.prepareAndDoRequest(req)
23-
logging.GetInfoLogger().Println(res)
22+
logger.Println(res)
2423

2524
if err != nil {
26-
logging.GetErrorLogger().Println(err)
25+
logger.Println(err)
2726
return types.Radio{}, err
2827
}
2928

@@ -37,14 +36,14 @@ func (helper *Helper) GetRadio() (types.Radio, error) {
3736
err = json.Unmarshal(jsonData, &data)
3837

3938
if err != nil {
40-
logging.GetErrorLogger().Println(err)
39+
logger.Println(err)
4140
return types.Radio{}, err
4241
}
4342

4443
return data, nil
4544
}
4645

47-
// Start the radio
46+
// StartRadio starts the radio
4847
func (helper *Helper) StartRadio() (types.Radio, error) {
4948
values := map[string]string{"switch": "on"}
5049
jsonData, _ := json.Marshal(values)
@@ -56,10 +55,10 @@ func (helper *Helper) StartRadio() (types.Radio, error) {
5655
}
5756

5857
res, err := helper.prepareAndDoRequest(req)
59-
logging.GetInfoLogger().Println(res)
58+
logger.Println(res)
6059

6160
if err != nil {
62-
logging.GetErrorLogger().Println(err)
61+
logger.Println(err)
6362
return types.Radio{}, err
6463
}
6564

@@ -73,14 +72,14 @@ func (helper *Helper) StartRadio() (types.Radio, error) {
7372
err = json.Unmarshal(jsonData, &data)
7473

7574
if err != nil {
76-
logging.GetErrorLogger().Println(err)
75+
logger.Println(err)
7776
return types.Radio{}, err
7877
}
7978

8079
return data, nil
8180
}
8281

83-
// Stop the radio
82+
// StopRadio stops the radio
8483
func (helper *Helper) StopRadio() (types.Radio, error) {
8584
values := map[string]string{"switch": "off"}
8685
jsonData, _ := json.Marshal(values)
@@ -92,10 +91,10 @@ func (helper *Helper) StopRadio() (types.Radio, error) {
9291
}
9392

9493
res, err := helper.prepareAndDoRequest(req)
95-
logging.GetInfoLogger().Println(res)
94+
logger.Println(res)
9695

9796
if err != nil {
98-
logging.GetErrorLogger().Println(err)
97+
logger.Println(err)
9998
return types.Radio{}, err
10099
}
101100

@@ -109,7 +108,7 @@ func (helper *Helper) StopRadio() (types.Radio, error) {
109108
err = json.Unmarshal(jsonData, &data)
110109

111110
if err != nil {
112-
logging.GetErrorLogger().Println(err)
111+
logger.Println(err)
113112
return types.Radio{}, err
114113
}
115114

Diff for: logging/loggers.go

+6-37
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,15 @@
22
package logging
33

44
import (
5+
"io"
56
"log"
6-
"os"
7-
"sync"
87
)
98

10-
const commonPrefix = "[rpi-radio-alarm-library]\t"
9+
const commonPrefix = "[rpi-radio-alarm-library] "
1110

12-
var (
13-
// InfoLogger logging infos
14-
InfoLogger *log.Logger
11+
var prefixes = log.Ldate | log.Ltime | log.Lmsgprefix
1512

16-
// ErrorLogger logging errors
17-
ErrorLogger *log.Logger
18-
19-
// FatalLogger logging fatal
20-
FatalLogger *log.Logger
21-
22-
once sync.Once
23-
)
24-
25-
// Get the InfoLogger
26-
func GetInfoLogger() *log.Logger {
27-
once.Do(func() {
28-
InfoLogger = log.New(os.Stderr, commonPrefix+"INFO: ", log.Ldate|log.Ltime|log.Lmsgprefix)
29-
})
30-
return InfoLogger
31-
}
32-
33-
// Get the ErrorLogger
34-
func GetErrorLogger() *log.Logger {
35-
once.Do(func() {
36-
ErrorLogger = log.New(os.Stderr, commonPrefix+"ERROR: ", log.Ldate|log.Ltime|log.Lmsgprefix)
37-
})
38-
return ErrorLogger
39-
}
40-
41-
// Get the FatalLogger
42-
func GetFatalLogger() *log.Logger {
43-
once.Do(func() {
44-
FatalLogger = log.New(os.Stderr, commonPrefix+"FATAL: ", log.Ldate|log.Ltime|log.Lmsgprefix)
45-
})
46-
return FatalLogger
13+
// GetLogger returns a logger with given addional prefix
14+
func GetLogger(place string, output io.Writer) *log.Logger {
15+
return log.New(output, commonPrefix+"["+place+"] ", prefixes)
4716
}

Diff for: rpi-radio-alarm-go-library.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,25 @@ import (
99
"github.com/joho/godotenv"
1010
)
1111

12-
// Returns the working helper object with the config loaded from a .env file
12+
var logger = logging.GetLogger("main", os.Stdout)
13+
14+
// GetHelperFromEnv Returns the working helper object with the config loaded from a .env file
1315
func GetHelperFromEnv() api.Helper {
1416

1517
err := godotenv.Load()
1618
if err != nil {
17-
logging.GetFatalLogger().Fatal("error loading .env file")
19+
logger.Fatal("error loading .env file")
1820
}
1921

2022
if os.Getenv("ALARMURL") == "" {
21-
logging.GetFatalLogger().Fatal("you have to specify ALARMURL in the .env")
23+
logger.Fatal("you have to specify ALARMURL in the .env")
2224
}
2325

2426
helper := api.Helper{AlarmURL: os.Getenv("ALARMURL"), ExtraHeader: os.Getenv("EXTRAHEADER"), ExtreaHeaderValue: os.Getenv("EXTRAHEADERVALUE")}
2527

2628
err = helper.CheckHealth()
2729
if err != nil {
28-
logging.GetFatalLogger().Fatalf("health check failed with: %s", err)
30+
logger.Fatalf("health check failed with: %s", err)
2931
}
3032

3133
return helper

Diff for: types/alarm.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Package types contains all the relevant structs/types for the library
22
package types
33

4-
// Represent a alarm
4+
// Alarm containing all the relevant data
55
type Alarm struct {
66
Name string `yaml:"name" json:"name"`
77
Hour int `yaml:"hour" json:"hour"`

0 commit comments

Comments
 (0)