7
7
"flag"
8
8
"fmt"
9
9
"io"
10
+ "log"
11
+ "log/slog"
10
12
"net"
11
13
"os"
12
14
"strings"
@@ -25,7 +27,6 @@ import (
25
27
_ "github.com/netsampler/goflow2/v2/transport/kafka"
26
28
27
29
"github.com/oschwald/geoip2-golang"
28
- log "github.com/sirupsen/logrus"
29
30
"google.golang.org/protobuf/encoding/protodelim"
30
31
)
31
32
@@ -92,23 +93,39 @@ func main() {
92
93
os .Exit (0 )
93
94
}
94
95
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 )
97
112
98
113
var dbAsn , dbCountry * geoip2.Reader
99
114
var err error
100
115
if * DbAsn != "" {
101
116
dbAsn , err = geoip2 .Open (* DbAsn )
102
117
if err != nil {
103
- log .Fatal (err )
118
+ slog .Error ("error opening asn db" , slog .String ("error" , err .Error ()))
119
+ os .Exit (1 )
104
120
}
105
121
defer dbAsn .Close ()
106
122
}
107
123
108
124
if * DbCountry != "" {
109
125
dbCountry , err = geoip2 .Open (* DbCountry )
110
126
if err != nil {
111
- log .Fatal (err )
127
+ slog .Error ("error opening country db" , slog .String ("error" , err .Error ()))
128
+ os .Exit (1 )
112
129
}
113
130
defer dbCountry .Close ()
114
131
}
@@ -120,16 +137,12 @@ func main() {
120
137
121
138
transporter , err := transport .FindTransport (* Transport )
122
139
if err != nil {
123
- log .Fatal (err )
140
+ slog .Error ("error transporter" , slog .String ("error" , err .Error ()))
141
+ os .Exit (1 )
124
142
}
125
143
defer transporter .Close ()
126
144
127
- switch * LogFmt {
128
- case "json" :
129
- log .SetFormatter (& log.JSONFormatter {})
130
- }
131
-
132
- log .Info ("starting enricher" )
145
+ logger .Info ("starting enricher" )
133
146
134
147
rdr := bufio .NewReader (os .Stdin )
135
148
@@ -138,7 +151,7 @@ func main() {
138
151
if err := protodelim .UnmarshalFrom (rdr , & msg ); err != nil && errors .Is (err , io .EOF ) {
139
152
return
140
153
} else if err != nil {
141
- log .Error (err )
154
+ slog .Error ("error unmarshalling message" , slog . String ( "error" , err . Error ()) )
142
155
continue
143
156
}
144
157
@@ -150,13 +163,13 @@ func main() {
150
163
151
164
key , data , err := formatter .Format (& msg )
152
165
if err != nil {
153
- log .Error (err )
166
+ slog .Error ("error formatting message" , slog . String ( "error" , err . Error ()) )
154
167
continue
155
168
}
156
169
157
170
err = transporter .Send (key , data )
158
171
if err != nil {
159
- log .Error (err )
172
+ slog .Error ("error sending message" , slog . String ( "error" , err . Error ()) )
160
173
continue
161
174
}
162
175
0 commit comments