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 }