-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
log.go
36 lines (32 loc) · 925 Bytes
/
log.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package kube
import (
"fmt"
"log"
)
func logDouble(before string, success string, err string) func(string, ...interface{}) func(error) {
return func(what string, params ...interface{}) func(error) {
log.Printf(fmt.Sprintf(before, what), params...)
return func(err error) {
if err != nil {
log.Printf("Error loading "+what+": %#v\n", append(params, err)...)
} else {
log.Printf("Successfully loaded "+what+"\n", params...)
}
}
}
}
// Logs "loading xxx" when entering a function and returns a function that logs on exit
// Use defer to invoke the return value with the error result:
// func LoadSomething(param int) (err error) {
// defer LogLoading("something(%d)", param)(err)
// }
var LogLoading = logDouble(
"Loading %s...\n",
"Successfully loaded %s\n",
"Error loading %s\n",
)
var LogDeleting = logDouble(
"Deleting %s...\n",
"Successfully deleted %s\n",
"Error deleting %s\n",
)