github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/worker/raft/raftutil/logging.go (about)

     1  // Copyright 2018 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package raftutil
     5  
     6  import "github.com/juju/loggo"
     7  
     8  // Logger defines the logging methods the LoggoWriter requires.
     9  type Logger interface {
    10  	Logf(loggo.Level, string, ...interface{})
    11  }
    12  
    13  // LoggoWriter is an io.Writer that will call the embedded
    14  // logger's Log method for each Write, using the specified
    15  // log level.
    16  type LoggoWriter struct {
    17  	Logger Logger
    18  	Level  loggo.Level
    19  }
    20  
    21  // Write is part of the io.Writer interface.
    22  func (w *LoggoWriter) Write(p []byte) (int, error) {
    23  	w.Logger.Logf(w.Level, "%s", p[:len(p)-1]) // omit trailing newline
    24  	return len(p), nil
    25  }