Added file logger

This commit is contained in:
Matthias Fulz 2020-09-06 12:24:20 +02:00
parent d814b065e1
commit 8dc9d5d423
1 changed files with 36 additions and 0 deletions

36
filelogger.go Normal file
View File

@ -0,0 +1,36 @@
package slog
import (
"fmt"
"os"
"sync"
)
type FileLogger struct {
w *os.File
l sync.Mutex
}
func (f *FileLogger) Write(p []byte) (n int, err error) {
if w == nil {
return 0, fmt.Errorf("No file handle available")
}
l.Lock()
defer func() {
w.Sync()
l.Unlock()
}()
return w.Write(p)
}
func NewFileLogger(file string) (ret io.Writer, err error) {
rret := &FileLogger{}
if rret.w, err = os.OpenFile(file, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644); err != nil {
return nil, err
}
return rret
}