diff options
-rw-r--r-- | .gitignore | 6 | ||||
-rw-r--r-- | log.go | 41 |
2 files changed, 41 insertions, 6 deletions
@@ -13,9 +13,3 @@ # Dependency directories (remove the comment below to include it) # vendor/ - -# Configuration files -*.json - -# Database files -*.sqlite @@ -0,0 +1,41 @@ +package main + +import ( + "log" + "os" + "path/filepath" +) + +type LogWriter struct { + f *os.File +} + +func (lw *LogWriter) Write(p []byte) (n int, err error) { + n, err = os.Stderr.Write(p) + if err != nil { + return + } + + return lw.f.Write(p) +} + +func init() { + executable, err := os.Executable() + if err != nil { + log.Fatal(err) + } + + path := filepath.Dir(executable) + "/latest.log" + f, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666) + if err != nil { + log.Fatal(err) + } + + go func() { + defer f.Close() + select {} + }() + + lw := &LogWriter{f} + log.SetOutput(lw) +} |