go-log/internal_logger_alert.go

63 lines
1.1 KiB
Go

package flog
import (
"fmt"
"io"
"strings"
)
func (receiver internalLogger) AlertMuted() bool {
return receiver.mutedAlert
}
func (receiver internalLogger) Alert(a ...interface{}) error {
s := fmt.Sprint(a...)
return receiver.Alertf("%s", s)
}
func (receiver internalLogger) Alertf(format string, a ...interface{}) error {
err := fmt.Errorf(format, a...)
if receiver.AlertMuted() {
return err
}
var writer io.Writer = receiver.writer
if nil == writer {
return err
}
var newformat string
{
var buffer strings.Builder
switch receiver.style{
case"color":
buffer.WriteString("☣️☣️☣️☣️☣️ ")
buffer.WriteString("\x1b[48;2;0;43;54m")
buffer.WriteString("\x1b[38;2;220;50;47m")
case "":
buffer.WriteString("[ALERT] ")
}
buffer.WriteString(receiver.prefix)
buffer.WriteString(format)
switch receiver.style {
case "color":
buffer.WriteString("\x1b[0m")
buffer.WriteString(" ☣️☣️☣️☣️☣️")
buffer.WriteRune('\n')
case "":
buffer.WriteRune('\n')
}
newformat = buffer.String()
}
fmt.Fprintf(receiver.writer, newformat, a...)
return err
}