spectator/writer/file_writer.go (27 lines of code) (raw):

package writer import ( "fmt" "github.com/Netflix/spectator-go/v2/spectator/logger" "os" ) // FileWriter is a writer that writes to a file. type FileWriter struct { file *os.File logger logger.Logger } // NewFileWriter creates a new FileWriter. func NewFileWriter(filename string, logger logger.Logger) (*FileWriter, error) { file, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { return nil, err } return &FileWriter{file, logger}, nil } // Write writes a line to the file. func (f *FileWriter) Write(line string) { f.logger.Debugf("Sending line: %s", line) _, err := fmt.Fprintln(f.file, line) if err != nil { f.logger.Errorf("Error writing to file: %s", err) } } // Close closes the file. func (f *FileWriter) Close() error { return f.file.Close() }