77 "flag"
88 "fmt"
99 "io"
10+ "log"
11+ "log/slog"
1012 "net"
1113 "os"
1214 "strings"
@@ -25,7 +27,6 @@ import (
2527 _ "github.com/netsampler/goflow2/v2/transport/kafka"
2628
2729 "github.com/oschwald/geoip2-golang"
28- log "github.com/sirupsen/logrus"
2930 "google.golang.org/protobuf/encoding/protodelim"
3031)
3132
@@ -92,23 +93,39 @@ func main() {
9293 os .Exit (0 )
9394 }
9495
95- lvl , _ := log .ParseLevel (* LogLevel )
96- log .SetLevel (lvl )
96+ var loglevel slog.Level
97+ if err := loglevel .UnmarshalText ([]byte (* LogLevel )); err != nil {
98+ log .Fatal ("error parsing log level" )
99+ }
100+
101+ lo := slog.HandlerOptions {
102+ Level : loglevel ,
103+ }
104+ logger := slog .New (slog .NewTextHandler (os .Stderr , & lo ))
105+
106+ switch * LogFmt {
107+ case "json" :
108+ logger = slog .New (slog .NewJSONHandler (os .Stderr , & lo ))
109+ }
110+
111+ slog .SetDefault (logger )
97112
98113 var dbAsn , dbCountry * geoip2.Reader
99114 var err error
100115 if * DbAsn != "" {
101116 dbAsn , err = geoip2 .Open (* DbAsn )
102117 if err != nil {
103- log .Fatal (err )
118+ slog .Error ("error opening asn db" , slog .String ("error" , err .Error ()))
119+ os .Exit (1 )
104120 }
105121 defer dbAsn .Close ()
106122 }
107123
108124 if * DbCountry != "" {
109125 dbCountry , err = geoip2 .Open (* DbCountry )
110126 if err != nil {
111- log .Fatal (err )
127+ slog .Error ("error opening country db" , slog .String ("error" , err .Error ()))
128+ os .Exit (1 )
112129 }
113130 defer dbCountry .Close ()
114131 }
@@ -120,16 +137,12 @@ func main() {
120137
121138 transporter , err := transport .FindTransport (* Transport )
122139 if err != nil {
123- log .Fatal (err )
140+ slog .Error ("error transporter" , slog .String ("error" , err .Error ()))
141+ os .Exit (1 )
124142 }
125143 defer transporter .Close ()
126144
127- switch * LogFmt {
128- case "json" :
129- log .SetFormatter (& log.JSONFormatter {})
130- }
131-
132- log .Info ("starting enricher" )
145+ logger .Info ("starting enricher" )
133146
134147 rdr := bufio .NewReader (os .Stdin )
135148
@@ -138,7 +151,7 @@ func main() {
138151 if err := protodelim .UnmarshalFrom (rdr , & msg ); err != nil && errors .Is (err , io .EOF ) {
139152 return
140153 } else if err != nil {
141- log .Error (err )
154+ slog .Error ("error unmarshalling message" , slog . String ( "error" , err . Error ()) )
142155 continue
143156 }
144157
@@ -150,13 +163,13 @@ func main() {
150163
151164 key , data , err := formatter .Format (& msg )
152165 if err != nil {
153- log .Error (err )
166+ slog .Error ("error formatting message" , slog . String ( "error" , err . Error ()) )
154167 continue
155168 }
156169
157170 err = transporter .Send (key , data )
158171 if err != nil {
159- log .Error (err )
172+ slog .Error ("error sending message" , slog . String ( "error" , err . Error ()) )
160173 continue
161174 }
162175
0 commit comments