From 815a4aac5962b620ab69e0fab6bf22c7d434dec0 Mon Sep 17 00:00:00 2001 From: grambbledook Date: Tue, 25 Nov 2025 21:56:19 +0100 Subject: [PATCH] log to file --- goinst/main.go | 54 +++++++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/goinst/main.go b/goinst/main.go index fc95c954f24..2409a66a87d 100644 --- a/goinst/main.go +++ b/goinst/main.go @@ -1,7 +1,6 @@ package main import ( - "fmt" "log" "os" "os/exec" @@ -15,19 +14,29 @@ var ( Link = "link" ) +var logger *log.Logger + func main() { if len(os.Args) < 2 { - fmt.Fprintln(os.Stderr, "Usage: toolexec [args...]") + log.Fatal("Usage: toolexec [args...]") os.Exit(1) } + f, err := os.OpenFile("toolexec.logger", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) + if err != nil { + log.Fatalf("error opening file: %v", err) + } + defer f.Close() + + logger = log.New(f, "", log.LstdFlags) + start := time.Now() cmd := exec.Command(os.Args[1], os.Args[2:]...) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr - err := cmd.Run() + err = cmd.Run() elapsed := time.Since(start) switch getTool(os.Args[1]) { @@ -43,37 +52,36 @@ func main() { if exitErr, ok := err.(*exec.ExitError); ok { os.Exit(exitErr.ExitCode()) } else { - fmt.Fprintln(os.Stderr, "Error:", err) - os.Exit(1) + logger.Fatal("Error:", err) } } } func printAsm(elapsed interface{}) { - log.Println("==========Asm=========") - log.Printf(" tool: %s", Asm) - log.Printf(" package: %s", os.Args[len(os.Args)-1]) - log.Printf(" elapsed: %s", elapsed) - log.Println("======================") - log.Println("") + logger.Println("==========Asm=========") + logger.Printf(" tool: %s", Asm) + logger.Printf(" package: %s", os.Args[len(os.Args)-1]) + logger.Printf(" elapsed: %s", elapsed) + logger.Println("======================") + logger.Println("") } func printCompile(elapsed interface{}) { - log.Println("========Compile=======") - log.Printf(" tool: %s", Compile) - log.Printf(" package: %s", getPackage(os.Args)) - log.Printf(" elapsed: %s", elapsed) - log.Println("======================") - log.Println("") + logger.Println("========Compile=======") + logger.Printf(" tool: %s", Compile) + logger.Printf(" package: %s", getPackage(os.Args)) + logger.Printf(" elapsed: %s", elapsed) + logger.Println("======================") + logger.Println("") } func printLink(elapsed interface{}) { - log.Println("========LINK========") - log.Printf(" tool: %s", Link) - log.Printf(" package: %s", os.Args[len(os.Args)-1]) - log.Printf(" elapsed: %s", elapsed) - log.Println("======================") - log.Println("") + logger.Println("========LINK========") + logger.Printf(" tool: %s", Link) + logger.Printf(" package: %s", os.Args[len(os.Args)-1]) + logger.Printf(" elapsed: %s", elapsed) + logger.Println("======================") + logger.Println("") } func getTool(tool string) string {