44 "bytes"
55 "compress/gzip"
66 "errors"
7- "fmt"
87 "net/http"
98 "runtime"
109 "time"
@@ -27,6 +26,7 @@ type SumoLogicAppender struct {
2726 sumoCategory string
2827 sumoName string
2928 sumoHost string
29+ verboseLogMessages bool
3030}
3131
3232type SumoBuffer struct {
@@ -35,7 +35,7 @@ type SumoBuffer struct {
3535 timerIdlebuffer time.Time
3636}
3737
38- func NewSumoLogicAppender (urlValue string , connectionTimeoutValue int , nozzleQueue * eventQueue.Queue , eventsBatchSize int , sumoPostMinimumDelay time.Duration , sumoCategory string , sumoName string , sumoHost string ) * SumoLogicAppender {
38+ func NewSumoLogicAppender (urlValue string , connectionTimeoutValue int , nozzleQueue * eventQueue.Queue , eventsBatchSize int , sumoPostMinimumDelay time.Duration , sumoCategory string , sumoName string , sumoHost string , verboseLogMessages bool ) * SumoLogicAppender {
3939 return & SumoLogicAppender {
4040 url : urlValue ,
4141 connectionTimeout : connectionTimeoutValue ,
@@ -46,6 +46,7 @@ func NewSumoLogicAppender(urlValue string, connectionTimeoutValue int, nozzleQue
4646 sumoCategory : sumoCategory ,
4747 sumoName : sumoName ,
4848 sumoHost : sumoHost ,
49+ verboseLogMessages : verboseLogMessages ,
4950 }
5051}
5152
@@ -106,7 +107,7 @@ func (s *SumoLogicAppender) Start() {
106107
107108}
108109
109- func StringBuilder (event * events.Event ) string {
110+ func StringBuilder (event * events.Event , verboseLogMessages bool ) string {
110111
111112 eventType := event .Type
112113 var msg []byte
@@ -137,9 +138,24 @@ func StringBuilder(event *events.Event) string {
137138 case "LogMessage" :
138139 timestamp := time .Unix (0 , event .Fields ["timestamp" ].(int64 )* int64 (time .Nanosecond )).String ()
139140 event .Fields ["timestamp" ] = timestamp
140- message , err := json .Marshal (event )
141- if err == nil {
142- msg = message
141+ if verboseLogMessages == true {
142+ message , err := json .Marshal (event )
143+ if err == nil {
144+ msg = message
145+ }
146+ } else {
147+ eventNoVerbose := events.Event {
148+ Fields : map [string ]interface {}{
149+ "timestamp" : event .Fields ["timestamp" ],
150+ "cf_app_guid" : event .Fields ["cf_app_id" ],
151+ },
152+ Msg : event .Msg ,
153+ Type : event .Type ,
154+ }
155+ message , err := json .Marshal (eventNoVerbose )
156+ if err == nil {
157+ msg = message
158+ }
143159 }
144160 case "ValueMetric" :
145161 message , err := json .Marshal (event )
@@ -168,7 +184,7 @@ func StringBuilder(event *events.Event) string {
168184}
169185
170186func (s * SumoLogicAppender ) AppendLogs (buffer * SumoBuffer ) {
171- buffer .logStringToSend .Write ([]byte (StringBuilder (s .nozzleQueue .Pop ())))
187+ buffer .logStringToSend .Write ([]byte (StringBuilder (s .nozzleQueue .Pop (), s . verboseLogMessages )))
172188 buffer .logEventsInCurrentBuffer ++
173189
174190}
@@ -179,7 +195,6 @@ func (s *SumoLogicAppender) SendToSumo(logStringToSend string /*, wg *sync.WaitG
179195 g := gzip .NewWriter (& buf )
180196 g .Write ([]byte (logStringToSend ))
181197 g .Close ()
182- fmt .Println (time .Since (s .timerBetweenPost ))
183198 for time .Since (s .timerBetweenPost ) < s .sumoPostMinimumDelay {
184199 logging .Info . /*Trace*/ Println ("Delaying post to honor minimum post delay" )
185200 time .Sleep (100 * time .Millisecond )
@@ -199,7 +214,7 @@ func (s *SumoLogicAppender) SendToSumo(logStringToSend string /*, wg *sync.WaitG
199214 request .Header .Add ("X-Sumo-Host" , s .sumoHost )
200215 }
201216 if s .sumoCategory != "" {
202- request .Header .Add ("X-Sumo-Host " , s .sumoCategory )
217+ request .Header .Add ("X-Sumo-Category " , s .sumoCategory )
203218 }
204219
205220 response , err := s .httpClient .Do (request )
@@ -225,7 +240,7 @@ func (s *SumoLogicAppender) SendToSumo(logStringToSend string /*, wg *sync.WaitG
225240 request .Header .Add ("X-Sumo-Host" , s .sumoHost )
226241 }
227242 if s .sumoCategory != "" {
228- request .Header .Add ("X-Sumo-Host " , s .sumoCategory )
243+ request .Header .Add ("X-Sumo-Category " , s .sumoCategory )
229244 }
230245 response , errRetry = s .httpClient .Do (request )
231246 if errRetry != nil {
@@ -240,7 +255,7 @@ func (s *SumoLogicAppender) SendToSumo(logStringToSend string /*, wg *sync.WaitG
240255 time .Sleep (300 * time .Millisecond )
241256 return attempt < 5 , errRetry
242257 } else if response .StatusCode == 200 {
243- logging .Info . /* Trace*/ Println ("Post of logs successful after retry..." )
258+ logging .Trace . Println ("Post of logs successful after retry..." )
244259 s .timerBetweenPost = time .Now ()
245260 statusCode = response .StatusCode
246261 return true , err
@@ -255,7 +270,7 @@ func (s *SumoLogicAppender) SendToSumo(logStringToSend string /*, wg *sync.WaitG
255270 logging .Error .Printf ("Not able to post after retry, with status code: %d" , statusCode )
256271 }
257272 } else if response .StatusCode == 200 {
258- logging .Info . /* Trace*/ Println ("Post of logs successful" )
273+ logging .Trace . Println ("Post of logs successful" )
259274 s .timerBetweenPost = time .Now ()
260275 }
261276
0 commit comments