From 599128f83756227c0609396ed8dfe00b3d0f1fcb Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Sun, 7 Jul 2013 20:07:19 -0400 Subject: [PATCH] For real sending logs to logstash agent --- logstash/crispy/main.go | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/logstash/crispy/main.go b/logstash/crispy/main.go index 3f514e3..cc44f7e 100644 --- a/logstash/crispy/main.go +++ b/logstash/crispy/main.go @@ -1,9 +1,11 @@ package main import ( + "encoding/json" + "fmt" "log" + "net" "net/http" - "os" ) func main() { @@ -24,9 +26,25 @@ func newCrispyServer() *crispyServer { } func (me *crispyServer) ServeHTTP(w http.ResponseWriter, r *http.Request) { - me.logstasher.Printf("%+v\n", r) + j, err := json.Marshal(r) + if err == nil { + me.logstasher.Println(string(j)) + } } func newLogstashLogger() *log.Logger { - return log.New(os.Stderr, "", 0) + return log.New(&logstashWriter{}, "", 0) +} + +type logstashWriter struct{} + +func (me *logstashWriter) Write(b []byte) (int, error) { + conn, err := net.Dial("tcp", ":55784") + if err == nil { + defer conn.Close() + fmt.Fprintf(conn, string(b)) + } else { + fmt.Printf(string(b)) + } + return 0, nil }