diff --git a/logger/log_test.go b/logger/log_test.go index 1633749a..0bb9dfe4 100644 --- a/logger/log_test.go +++ b/logger/log_test.go @@ -3,10 +3,12 @@ package logger import ( "bytes" + "fmt" "io" "io/ioutil" "log" "os" + "strings" "testing" ) @@ -94,6 +96,9 @@ func TestFileLogger(t *testing.T) { defer os.RemoveAll(tmpDir) file, err := ioutil.TempFile(tmpDir, "gnatsd:log_") + if err != nil { + t.Fatalf("Could not create the temp file: %v", err) + } file.Close() logger := NewFileLogger(file.Name(), false, false, false, false) @@ -110,6 +115,38 @@ func TestFileLogger(t *testing.T) { if string(buf) != "[INF] foo\n" { t.Fatalf("Expected '%s', received '%s'\n", "[INFO] foo", string(buf)) } + + file, err = ioutil.TempFile(tmpDir, "gnatsd:log_") + if err != nil { + t.Fatalf("Could not create the temp file: %v", err) + } + file.Close() + + logger = NewFileLogger(file.Name(), true, true, true, true) + logger.Errorf("foo") + + buf, err = ioutil.ReadFile(file.Name()) + if err != nil { + t.Fatalf("Could not read logfile: %v", err) + } + if len(buf) <= 0 { + t.Fatal("Expected a non-zero length logfile") + } + str := string(buf) + errMsg := fmt.Sprintf("Expected '%s', received '%s'\n", "[pid] [ERR] foo", str) + pidEnd := strings.Index(str, " ") + infoStart := strings.LastIndex(str, "[ERR]") + if pidEnd == -1 || infoStart == -1 { + t.Fatalf("%v", errMsg) + } + pid := str[0:pidEnd] + if pid[0] != '[' || pid[len(pid)-1] != ']' { + t.Fatalf("%v", errMsg) + } + //TODO: Parse date. + if !strings.HasSuffix(str, "[ERR] foo\n") { + t.Fatalf("%v", errMsg) + } } func expectOutput(t *testing.T, f func(), expected string) {