Skip to content

Commit 35bd40c

Browse files
Merge pull request #342 from lucassabreu/master
toJSON function on raw
2 parents d6fe180 + 1df2315 commit 35bd40c

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

adapters/raw/raw.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package raw
22

33
import (
44
"bytes"
5+
"encoding/json"
56
"errors"
67
"log"
78
"net"
@@ -16,6 +17,17 @@ func init() {
1617
router.AdapterFactories.Register(NewRawAdapter, "raw")
1718
}
1819

20+
var funcs = template.FuncMap{
21+
"toJSON": func(value interface{}) string {
22+
bytes, err := json.Marshal(value)
23+
if err != nil {
24+
log.Println("error marshalling to JSON: ", err)
25+
return "null"
26+
}
27+
return string(bytes)
28+
},
29+
}
30+
1931
// NewRawAdapter returns a configured raw.Adapter
2032
func NewRawAdapter(route *router.Route) (router.LogAdapter, error) {
2133
transport, found := router.AdapterTransports.Lookup(route.AdapterTransport("udp"))
@@ -30,7 +42,7 @@ func NewRawAdapter(route *router.Route) (router.LogAdapter, error) {
3042
if os.Getenv("RAW_FORMAT") != "" {
3143
tmplStr = os.Getenv("RAW_FORMAT")
3244
}
33-
tmpl, err := template.New("raw").Parse(tmplStr)
45+
tmpl, err := template.New("raw").Funcs(funcs).Parse(tmplStr)
3446
if err != nil {
3547
return nil, err
3648
}

0 commit comments

Comments
 (0)