2017-05-12 05:24:39 +00:00
|
|
|
// +build !windows
|
2018-03-28 18:49:41 +00:00
|
|
|
// +build !binary_log
|
2017-05-12 05:24:39 +00:00
|
|
|
|
|
|
|
package zerolog
|
|
|
|
|
2018-03-28 18:49:41 +00:00
|
|
|
import (
|
|
|
|
"io"
|
|
|
|
)
|
2017-05-15 21:36:49 +00:00
|
|
|
|
|
|
|
// SyslogWriter is an interface matching a syslog.Writer struct.
|
|
|
|
type SyslogWriter interface {
|
|
|
|
io.Writer
|
2019-11-04 19:39:22 +00:00
|
|
|
Trace(m string) error
|
2017-05-15 21:36:49 +00:00
|
|
|
Debug(m string) error
|
|
|
|
Info(m string) error
|
|
|
|
Warning(m string) error
|
|
|
|
Err(m string) error
|
|
|
|
Emerg(m string) error
|
|
|
|
Crit(m string) error
|
|
|
|
}
|
2017-05-12 05:24:39 +00:00
|
|
|
|
|
|
|
type syslogWriter struct {
|
2017-05-15 21:36:49 +00:00
|
|
|
w SyslogWriter
|
2017-05-12 05:24:39 +00:00
|
|
|
}
|
|
|
|
|
2017-05-15 21:36:49 +00:00
|
|
|
// SyslogLevelWriter wraps a SyslogWriter and call the right syslog level
|
|
|
|
// method matching the zerolog level.
|
|
|
|
func SyslogLevelWriter(w SyslogWriter) LevelWriter {
|
2017-05-12 05:24:39 +00:00
|
|
|
return syslogWriter{w}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (sw syslogWriter) Write(p []byte) (n int, err error) {
|
|
|
|
return sw.w.Write(p)
|
|
|
|
}
|
|
|
|
|
|
|
|
// WriteLevel implements LevelWriter interface.
|
|
|
|
func (sw syslogWriter) WriteLevel(level Level, p []byte) (n int, err error) {
|
|
|
|
switch level {
|
2019-11-04 19:39:22 +00:00
|
|
|
case TraceLevel:
|
|
|
|
err = sw.w.Trace(string(p))
|
2017-05-12 05:24:39 +00:00
|
|
|
case DebugLevel:
|
|
|
|
err = sw.w.Debug(string(p))
|
|
|
|
case InfoLevel:
|
|
|
|
err = sw.w.Info(string(p))
|
|
|
|
case WarnLevel:
|
|
|
|
err = sw.w.Warning(string(p))
|
|
|
|
case ErrorLevel:
|
|
|
|
err = sw.w.Err(string(p))
|
|
|
|
case FatalLevel:
|
|
|
|
err = sw.w.Emerg(string(p))
|
|
|
|
case PanicLevel:
|
|
|
|
err = sw.w.Crit(string(p))
|
2017-12-01 17:52:37 +00:00
|
|
|
case NoLevel:
|
|
|
|
err = sw.w.Info(string(p))
|
2017-05-12 05:24:39 +00:00
|
|
|
default:
|
|
|
|
panic("invalid level")
|
|
|
|
}
|
|
|
|
n = len(p)
|
|
|
|
return
|
|
|
|
}
|