Added file logger
This commit is contained in:
parent
d814b065e1
commit
8dc9d5d423
|
@ -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
|
||||
}
|
Loading…
Reference in New Issue