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  }