37 lines
780 B
Go
37 lines
780 B
Go
// +build debug
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
"time"
|
|
)
|
|
|
|
var debugLogger = initDebugLogger()
|
|
|
|
func initDebugLogger() *log.Logger {
|
|
// create new log file
|
|
filename := fmt.Sprintf("khepri-debug-%d-%s",
|
|
os.Getpid(), time.Now().Format("20060201-150405"))
|
|
f, err := os.OpenFile(filepath.Join(os.TempDir(), filename),
|
|
os.O_WRONLY|os.O_CREATE, 0600)
|
|
if err != nil {
|
|
fmt.Fprintf(os.Stderr, "unable to create debug log file: %v", err)
|
|
os.Exit(2)
|
|
}
|
|
|
|
// open logger
|
|
l := log.New(io.MultiWriter(os.Stderr, f), "DEBUG: ", log.LstdFlags)
|
|
fmt.Fprintf(os.Stderr, "logging activated, writing log file %s", filename)
|
|
l.Printf("khepri %s", version)
|
|
|
|
return l
|
|
}
|
|
|
|
func debug(fmt string, args ...interface{}) {
|
|
debugLogger.Printf(fmt, args...)
|
|
}
|