v1.0.0
This commit is contained in:
91
io.go
Normal file
91
io.go
Normal file
@@ -0,0 +1,91 @@
|
||||
package slog
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
func (l *Logger) Infof(format string, args ...any) {
|
||||
l.print(INFO, fmt.Sprintf(format, args...))
|
||||
}
|
||||
func (l *Logger) Info(m ...any) {
|
||||
l.print(INFO, m...)
|
||||
}
|
||||
func (l *Logger) Infoln(m ...any) {
|
||||
l.println(INFO, m...)
|
||||
}
|
||||
|
||||
func (l *Logger) Warnf(format string, args ...any) {
|
||||
l.print(WARN, fmt.Sprintf(format, args...))
|
||||
}
|
||||
func (l *Logger) Warn(m ...any) {
|
||||
l.print(WARN, m...)
|
||||
}
|
||||
func (l *Logger) Warnln(m ...any) {
|
||||
l.println(WARN, m...)
|
||||
}
|
||||
|
||||
func (l *Logger) Errorf(format string, args ...any) {
|
||||
l.print(ERROR, fmt.Sprintf(format, args...))
|
||||
}
|
||||
func (l *Logger) Error(m ...any) {
|
||||
l.print(ERROR, m...)
|
||||
}
|
||||
func (l *Logger) Errorln(m ...any) {
|
||||
l.println(ERROR, m...)
|
||||
}
|
||||
|
||||
func (l *Logger) Fatalf(format string, args ...any) {
|
||||
l.print(FATAL, fmt.Sprintf(format, args...))
|
||||
os.Exit(1)
|
||||
}
|
||||
func (l *Logger) Fatal(m ...any) {
|
||||
l.print(FATAL, m...)
|
||||
os.Exit(1)
|
||||
}
|
||||
func (l *Logger) Fatalln(m ...any) {
|
||||
l.println(FATAL, m...)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
func (l *Logger) Debugf(format string, args ...any) {
|
||||
l.print(DEBUG, fmt.Sprintf(format, args...))
|
||||
}
|
||||
func (l *Logger) Debug(m ...any) {
|
||||
l.print(DEBUG, m...)
|
||||
}
|
||||
func (l *Logger) Debugln(m ...any) {
|
||||
l.println(DEBUG, m...)
|
||||
}
|
||||
|
||||
// Write message without trailing "\n"
|
||||
// Good for database
|
||||
func (l *Logger) print(level LogLevel, m ...any) {
|
||||
if l.level.n < level.n {
|
||||
return
|
||||
}
|
||||
|
||||
tb := getFullTraceback(0)
|
||||
for _, writer := range l.writers {
|
||||
err := writer.Print(level, l.prefix, tb, m...)
|
||||
if err != nil {
|
||||
l.Error(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Docker requires "\n" at end to write to log.
|
||||
// print not work for docker, otherwise it will work and write into stdout
|
||||
func (l *Logger) println(level LogLevel, m ...any) {
|
||||
if l.level.n < level.n {
|
||||
return
|
||||
}
|
||||
|
||||
tb := getFullTraceback(0)
|
||||
for _, writer := range l.writers {
|
||||
err := writer.Print(level, l.prefix, tb, append(m, "\n")...)
|
||||
if err != nil {
|
||||
l.Error(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user