accessLogRecord := CreateAccessLogRecord() accessLogRecord.RouteEndpoint = routeEndpoint accessLogger.Log(*accessLogRecord) go accessLogger.Run() Consistently(fakeLogSender.GetLogs).Should(HaveLen(0)) accessLogger.Stop() }) }) Context("created with access log file", func() { It("writes to the log file and Stdout", func() { var fakeAccessFile = new(test_util.FakeFile) fname := filepath.Join(os.TempDir(), "stdout") oldStdout := os.Stdout tempStdout, _ := os.Create(fname) defer tempStdout.Close() os.Stdout = tempStdout accessLogger := NewFileAndLoggregatorAccessLogger(logger, "", fakeAccessFile, os.Stdout) go accessLogger.Run() accessLogger.Log(*CreateAccessLogRecord()) os.Stdout = oldStdout var stdoutPayload []byte Eventually(func() int { stdoutPayload, _ = ioutil.ReadFile(fname) return len(stdoutPayload)
accessLogRecord := CreateAccessLogRecord() accessLogRecord.RouteEndpoint = routeEndpoint accessLogger.Log(*accessLogRecord) go accessLogger.Run() Consistently(testEmitter.done).ShouldNot(Receive()) accessLogger.Stop() }) }) Context("with a file", func() { It("writes to the log file", func() { var fakeFile = new(test_util.FakeFile) accessLogger := NewFileAndLoggregatorAccessLogger(fakeFile, nil) go accessLogger.Run() accessLogger.Log(*CreateAccessLogRecord()) var payload []byte Eventually(func() int { n, _ := fakeFile.Read(&payload) return n }).ShouldNot(Equal(0)) Ω(string(payload)).To(MatchRegexp("^.*foo.bar.*\n")) accessLogger.Stop() }) })
func (_ nullVarz) MarshalJSON() ([]byte, error) { return json.Marshal(nil) } func (_ nullVarz) ActiveApps() *stats.ActiveApps { return stats.NewActiveApps() } func (_ nullVarz) CaptureBadRequest(*http.Request) {} func (_ nullVarz) CaptureBadGateway(*http.Request) {} func (_ nullVarz) CaptureRoutingRequest(b *route.Endpoint, req *http.Request) {} func (_ nullVarz) CaptureRoutingResponse(b *route.Endpoint, res *http.Response, t time.Time, d time.Duration) { } var _ = Describe("Proxy", func() { var r *registry.RouteRegistry var p Proxy var conf *config.Config var proxyServer net.Listener var accessLog access_log.AccessLogger var accessLogFile *test_util.FakeFile BeforeEach(func() { conf = config.DefaultConfig() conf.TraceKey = "my_trace_key" conf.EndpointTimeout = 500 * time.Millisecond mbus := fakeyagnats.New() r = registry.NewRouteRegistry(conf, mbus) accessLogFile = new(test_util.FakeFile) accessLog = access_log.NewFileAndLoggregatorAccessLogger(accessLogFile, nil) go accessLog.Run() p = NewProxy(ProxyArgs{