github.com/dustinrc/deis@v1.10.1-0.20150917223407-0894a5fb979e/logger/drain/drain.go (about) 1 package drain 2 3 import ( 4 "fmt" 5 "log" 6 "net" 7 "net/url" 8 "os" 9 ) 10 11 func SendToDrain(m string, drain string) error { 12 u, err := url.Parse(drain) 13 if err != nil { 14 log.Fatal(err) 15 } 16 uri := u.Host + u.Path 17 switch u.Scheme { 18 case "syslog": 19 sendToSyslogDrain(m, uri) 20 default: 21 log.Println(u.Scheme + " drain type is not implemented.") 22 } 23 return nil 24 } 25 26 func sendToSyslogDrain(m string, drain string) error { 27 conn, err := net.Dial("udp", drain) 28 if err != nil { 29 log.Print(err) 30 } 31 defer conn.Close() 32 fmt.Fprintf(conn, m) 33 return nil 34 } 35 36 func getopt(name, dfault string) string { 37 value := os.Getenv(name) 38 if value == "" { 39 value = dfault 40 } 41 return value 42 }