diff --git a/backend/api_logging.go b/backend/api_logging.go new file mode 100644 index 0000000..46a3808 --- /dev/null +++ b/backend/api_logging.go @@ -0,0 +1,36 @@ +package main + +import ( + "fmt" + "log" + "strings" +) + +// Log an api error +func apiLogError(module string, params ...interface{}) { + var err error + args := []string{} + + // Build args string and get error from params + for _, p := range params { + // We have our error + if e, ok := p.(error); ok { + err = e + continue + } + + args = append(args, fmt.Sprintf("%v", p)) + } + + if err != nil { + log.Println(fmt.Sprintf( + "API :: %s(%s) :: ERROR: %v", + module, strings.Join(args, ", "), err, + )) + } else { + log.Println(fmt.Sprintf( + "API :: %s(%s)", + module, strings.Join(args, ", "), + )) + } +} diff --git a/backend/api_logging_test.go b/backend/api_logging_test.go new file mode 100644 index 0000000..dc1e94d --- /dev/null +++ b/backend/api_logging_test.go @@ -0,0 +1,14 @@ +package main + +import ( + "fmt" + "testing" +) + +func TestApiLogError(t *testing.T) { + err := fmt.Errorf("an unexpected error occured") + + apiLogError("foo.bar", 23, "Test") + apiLogError("foo.bam", err) + apiLogError("foo.baz", 23, 42, "foo", err) +}