From 7a91b1ea82935254e290aaaef391119b58e1373c Mon Sep 17 00:00:00 2001 From: Dmitry Bashkatov Date: Wed, 22 Nov 2017 18:55:39 +0300 Subject: [PATCH] syslog adapter: add useful template functions --- adapters/syslog/syslog.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/adapters/syslog/syslog.go b/adapters/syslog/syslog.go index e44f7872..dd792b1b 100644 --- a/adapters/syslog/syslog.go +++ b/adapters/syslog/syslog.go @@ -12,12 +12,23 @@ import ( "syscall" "text/template" "time" + "strings" + "regexp" "github.com/gliderlabs/logspout/router" ) const defaultRetryCount = 10 +var funcs = template.FuncMap{ + "split": strings.Split, + "join": strings.Join, + "reSubmatch": func(pat string, str string) []string { + re := regexp.MustCompile(pat) + return re.FindStringSubmatch(str) + }, +} + var ( hostname string retryCount uint @@ -94,7 +105,7 @@ func NewSyslogAdapter(route *router.Route) (router.LogAdapter, error) { default: return nil, errors.New("unsupported syslog format: " + format) } - tmpl, err := template.New("syslog").Parse(tmplStr) + tmpl, err := template.New("syslog").Funcs(funcs).Parse(tmplStr) if err != nil { return nil, err }