github.com/mongodb/grip@v0.0.0-20240213223901-f906268d82b9/send/json.go (about) 1 package send 2 3 // NewJSONConsoleLogger builds a Sender instance that prints log 4 // messages in a JSON formatted to standard output. The JSON formated 5 // message is taken by calling the Raw() method on the 6 // message.Composer and Marshalling the results. 7 func NewJSONConsoleLogger(name string, l LevelInfo) (Sender, error) { 8 return setup(MakeJSONConsoleLogger(), name, l) 9 } 10 11 // MakeJSONConsoleLogger returns an un-configured JSON console logging 12 // instance. 13 func MakeJSONConsoleLogger() Sender { 14 s := MakePlainLogger() 15 _ = s.SetFormatter(MakeJSONFormatter()) 16 17 return s 18 } 19 20 // NewJSONFileLogger builds a Sender instance that write JSON 21 // formated log messages to a file, with one-line per message. The 22 // JSON formated message is taken by calling the Raw() method on the 23 // message.Composer and Marshalling the results. 24 func NewJSONFileLogger(name, file string, l LevelInfo) (Sender, error) { 25 s, err := MakeJSONFileLogger(file) 26 if err != nil { 27 return nil, err 28 } 29 30 return setup(s, name, l) 31 } 32 33 // MakeJSONFileLogger creates an un-configured JSON logger that writes 34 // output to the specified file. 35 func MakeJSONFileLogger(file string) (Sender, error) { 36 s, err := MakePlainFileLogger(file) 37 if err != nil { 38 return nil, err 39 } 40 41 if err = s.SetFormatter(MakeJSONFormatter()); err != nil { 42 return nil, err 43 } 44 45 return s, nil 46 }