@@ -88,6 +88,7 @@ func (s *Server) getRouter() http.Handler {
88
88
mux .Get ("/livez" , s .handleLivenessCheck )
89
89
mux .Get ("/api/v1/new_event" , s .handleNewEvent )
90
90
mux .Get ("/api/v1/events" , s .handleGetEvents )
91
+ mux .Get ("/logs" , s .handleGetLogs )
91
92
mux .Get ("/api/v1/actions/{action}" , s .handleAction )
92
93
mux .Post ("/api/v1/file-upload/{file}" , s .handleFileUpload )
93
94
@@ -174,26 +175,32 @@ func (s *Server) handleNewEvent(w http.ResponseWriter, r *http.Request) {
174
175
w .WriteHeader (http .StatusOK )
175
176
}
176
177
177
- func (s * Server ) handleGetEvents (w http.ResponseWriter , r * http. Request ) {
178
+ func (s * Server ) writeEventsAsText (w http.ResponseWriter ) {
178
179
s .eventsLock .RLock ()
179
180
defer s .eventsLock .RUnlock ()
180
181
182
+ w .Header ().Set ("Content-Type" , "text/plain" )
183
+ for _ , event := range s .events {
184
+ _ , err := w .Write ([]byte (event .ReceivedAt .Format (time .RFC3339 ) + " \t " + event .Message + "\n " ))
185
+ if err != nil {
186
+ s .log .Error ("Failed to write event" , "err" , err )
187
+ w .WriteHeader (http .StatusInternalServerError )
188
+ return
189
+ }
190
+ }
191
+ }
192
+
193
+ func (s * Server ) handleGetEvents (w http.ResponseWriter , r * http.Request ) {
181
194
// respond either as JSON or plain text
182
195
if r .URL .Query ().Get ("format" ) == "text" {
183
196
// write events as plain text response
184
- w .Header ().Set ("Content-Type" , "text/plain" )
185
- for _ , event := range s .events {
186
- _ , err := w .Write ([]byte (event .ReceivedAt .Format (time .RFC3339 ) + " \t " + event .Message + "\n " ))
187
- if err != nil {
188
- s .log .Error ("Failed to write event" , "err" , err )
189
- w .WriteHeader (http .StatusInternalServerError )
190
- return
191
- }
192
- }
197
+ s .writeEventsAsText (w )
193
198
return
194
199
}
195
200
196
201
// write events as JSON response
202
+ s .eventsLock .RLock ()
203
+ defer s .eventsLock .RUnlock ()
197
204
w .Header ().Set ("Content-Type" , "application/json" )
198
205
err := json .NewEncoder (w ).Encode (s .events )
199
206
if err != nil {
@@ -203,6 +210,10 @@ func (s *Server) handleGetEvents(w http.ResponseWriter, r *http.Request) {
203
210
}
204
211
}
205
212
213
+ func (s * Server ) handleGetLogs (w http.ResponseWriter , r * http.Request ) {
214
+ s .writeEventsAsText (w )
215
+ }
216
+
206
217
func (s * Server ) handleAction (w http.ResponseWriter , r * http.Request ) {
207
218
action := chi .URLParam (r , "action" )
208
219
s .log .Info ("Received action" , "action" , action )
0 commit comments