e5191383a7
ADDED: * logging.Logger objects now are able to return a stdlib *log.Logger.
75 lines
1.4 KiB
Go
75 lines
1.4 KiB
Go
package logging
|
|
|
|
import (
|
|
`r00t2.io/goutils/multierr`
|
|
)
|
|
|
|
// Write writes bytes b to the underlying Logger's priority level if the logWriter's priority level(s) match.
|
|
func (l *logWriter) Write(b []byte) (n int, err error) {
|
|
|
|
var s string
|
|
var mErr *multierr.MultiError = multierr.NewMultiError(nil)
|
|
|
|
if b == nil {
|
|
return
|
|
}
|
|
|
|
s = string(b)
|
|
|
|
if l.prio.HasFlag(PriorityEmergency) {
|
|
if err = l.backend.Emerg(s); err != nil {
|
|
mErr.AddError(err)
|
|
err = nil
|
|
}
|
|
}
|
|
if l.prio.HasFlag(PriorityAlert) {
|
|
if err = l.backend.Alert(s); err != nil {
|
|
mErr.AddError(err)
|
|
err = nil
|
|
}
|
|
}
|
|
if l.prio.HasFlag(PriorityCritical) {
|
|
if err = l.backend.Crit(s); err != nil {
|
|
mErr.AddError(err)
|
|
err = nil
|
|
}
|
|
}
|
|
if l.prio.HasFlag(PriorityError) {
|
|
if err = l.backend.Err(s); err != nil {
|
|
mErr.AddError(err)
|
|
err = nil
|
|
}
|
|
}
|
|
if l.prio.HasFlag(PriorityWarning) {
|
|
if err = l.backend.Warning(s); err != nil {
|
|
mErr.AddError(err)
|
|
err = nil
|
|
}
|
|
}
|
|
if l.prio.HasFlag(PriorityNotice) {
|
|
if err = l.backend.Notice(s); err != nil {
|
|
mErr.AddError(err)
|
|
err = nil
|
|
}
|
|
}
|
|
if l.prio.HasFlag(PriorityInformational) {
|
|
if err = l.backend.Info(s); err != nil {
|
|
mErr.AddError(err)
|
|
err = nil
|
|
}
|
|
}
|
|
if l.prio.HasFlag(PriorityDebug) {
|
|
if err = l.backend.Debug(s); err != nil {
|
|
mErr.AddError(err)
|
|
err = nil
|
|
}
|
|
}
|
|
|
|
if !mErr.IsEmpty() {
|
|
err = mErr
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|