diff options
Diffstat (limited to 'log')
| -rw-r--r-- | log/filelogger/log.go | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/log/filelogger/log.go b/log/filelogger/log.go index f8c4da65b..ef3ad1e9f 100644 --- a/log/filelogger/log.go +++ b/log/filelogger/log.go @@ -9,6 +9,7 @@ package filelogger import ( "bytes" "fmt" + "io" "io/ioutil" "log" "os" @@ -26,30 +27,30 @@ const ( maxFiles = 50 ) -// New returns a logf wrapper that appends to local disk log +// New returns a Writer that appends to local disk log // files on Windows, rotating old log files as needed to stay under // file count & byte limits. -func New(fileBasePrefix, logID string, logf logger.Logf) logger.Logf { +func New(fileBasePrefix, logID string, inner *log.Logger) io.Writer { if runtime.GOOS != "windows" { panic("not yet supported on any platform except Windows") } - if logf == nil { - panic("nil logf") + if inner == nil { + panic("nil inner logger") } dir := filepath.Join(os.Getenv("ProgramData"), "Tailscale", "Logs") if err := os.MkdirAll(dir, 0700); err != nil { - log.Printf("failed to create local log directory; not writing logs to disk: %v", err) - return logf + inner.Printf("failed to create local log directory; not writing logs to disk: %v", err) + return inner.Writer() } - logf("local disk logdir: %v", dir) + inner.Printf("local disk logdir: %v", dir) lfw := &logFileWriter{ fileBasePrefix: fileBasePrefix, logID: logID, dir: dir, - wrappedLogf: logf, + wrappedLogf: inner.Printf, } - return lfw.Logf + return logger.FuncWriter(lfw.Logf) } // logFileWriter is the state for the log writer & rotator. |
