From 8437d293b5b581f602e8e145407ef6e3e89c1abe Mon Sep 17 00:00:00 2001 From: Carles Figuerola Date: Wed, 27 Apr 2016 11:13:24 -0500 Subject: [PATCH 1/4] Add template function to syslog adapter to traverse .Container.Config.Env --- adapters/syslog/syslog.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/adapters/syslog/syslog.go b/adapters/syslog/syslog.go index 95e03d1d..b6302c3f 100644 --- a/adapters/syslog/syslog.go +++ b/adapters/syslog/syslog.go @@ -8,6 +8,7 @@ import ( "log/syslog" "net" "os" + "strings" "text/template" "time" @@ -29,6 +30,15 @@ func getopt(name, dfault string) string { return value } +func tplGetEnvVar(env []string, key string) string { + for _, value := range env { + if strings.HasPrefix(value, fmt.Sprintf("%s%s", key, "=")) { + return strings.Split(value, "=")[1] + } + } + return "" +} + func NewSyslogAdapter(route *router.Route) (router.LogAdapter, error) { transport, found := router.AdapterTransports.Lookup(route.AdapterTransport("udp")) if !found { @@ -67,7 +77,10 @@ func NewSyslogAdapter(route *router.Route) (router.LogAdapter, error) { default: return nil, errors.New("unsupported syslog format: " + format) } - tmpl, err := template.New("syslog").Parse(tmplStr) + + funcMap := template.FuncMap{ + "getEnvVar": tplGetEnvVar} + tmpl, err := template.New("syslog").Funcs(funcMap).Parse(tmplStr) if err != nil { return nil, err } From 1e5930b9811465e1e5f88a643c0a18aab23aaebb Mon Sep 17 00:00:00 2001 From: Carles Figuerola Date: Tue, 14 Jun 2016 10:59:27 -0500 Subject: [PATCH 2/4] Moved sprintf to save a few allocs --- adapters/syslog/syslog.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/adapters/syslog/syslog.go b/adapters/syslog/syslog.go index b6302c3f..bd999049 100644 --- a/adapters/syslog/syslog.go +++ b/adapters/syslog/syslog.go @@ -31,8 +31,9 @@ func getopt(name, dfault string) string { } func tplGetEnvVar(env []string, key string) string { + key_equals := fmt.Sprintf("%s%s", key, "=") for _, value := range env { - if strings.HasPrefix(value, fmt.Sprintf("%s%s", key, "=")) { + if strings.HasPrefix(value, key_equals) { return strings.Split(value, "=")[1] } } From ab3f28f0c0782f22a1a42d259084e63b37f00b73 Mon Sep 17 00:00:00 2001 From: Carles Figuerola Date: Mon, 19 Sep 2016 22:34:23 -0500 Subject: [PATCH 3/4] PR#182: Added fixes by @andrewgaul to adapters/syslog/syslog.go --- adapters/syslog/syslog.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/adapters/syslog/syslog.go b/adapters/syslog/syslog.go index bd999049..b54b6f5c 100644 --- a/adapters/syslog/syslog.go +++ b/adapters/syslog/syslog.go @@ -31,10 +31,10 @@ func getopt(name, dfault string) string { } func tplGetEnvVar(env []string, key string) string { - key_equals := fmt.Sprintf("%s%s", key, "=") + key_equals := key + "=" for _, value := range env { if strings.HasPrefix(value, key_equals) { - return strings.Split(value, "=")[1] + return value[strings.Index(value, "=")+1:] } } return "" From f051e70857beb314b3769691df1bc3d146ad332c Mon Sep 17 00:00:00 2001 From: Carles Figuerola Date: Fri, 23 Sep 2016 08:31:32 -0500 Subject: [PATCH 4/4] PR#182: More fixes by @andrewgaul --- adapters/syslog/syslog.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adapters/syslog/syslog.go b/adapters/syslog/syslog.go index b54b6f5c..2473537f 100644 --- a/adapters/syslog/syslog.go +++ b/adapters/syslog/syslog.go @@ -34,7 +34,7 @@ func tplGetEnvVar(env []string, key string) string { key_equals := key + "=" for _, value := range env { if strings.HasPrefix(value, key_equals) { - return value[strings.Index(value, "=")+1:] + return value[length(key_equals)+1:] } } return ""