summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorheqnx <root@heqnx.com>2025-08-07 18:26:45 +0300
committerheqnx <root@heqnx.com>2025-08-07 18:26:45 +0300
commit8f1f47a816a9e18aedb8f160aa4539dd11b5f01a (patch)
treee379427e9c82d872c8682dd87d6b191fb8da71f9 /main.go
parent2fc27e5b3b802dcc77a0299f99b97056712c92e3 (diff)
downloadgo-http-logger-main.tar.gz
go-http-logger-main.zip
small fixesHEADmain
Diffstat (limited to 'main.go')
-rw-r--r--main.go29
1 files changed, 24 insertions, 5 deletions
diff --git a/main.go b/main.go
index dc85d1d..c13494d 100644
--- a/main.go
+++ b/main.go
@@ -10,6 +10,20 @@ import (
"os"
"time"
)
+func init() {
+ const usageHeader = `
+simple golang http server to log http request bodies and parameters; can optionally respond with static file content
+
+author: heqnx - https://heqnx.com
+
+`
+ flag.Usage = func() {
+ fmt.Fprint(os.Stderr, usageHeader)
+ fmt.Fprintf(os.Stderr, "usage of %s:\n", os.Args[0])
+ flag.PrintDefaults()
+ }
+ flag.CommandLine.SetOutput(os.Stderr)
+}
func main() {
listen := flag.String("listen", "0.0.0.0", "interface to listen on (default: 0.0.0.0)")
@@ -19,10 +33,15 @@ func main() {
responseFile := flag.String("response", "", "file to use as static HTTP response body")
flag.Parse()
+ if flag.NFlag() == 0 && flag.NArg() == 0 {
+ flag.Usage()
+ os.Exit(1)
+ }
+
logFilename := fmt.Sprintf("requests_%s.log", time.Now().Format("2006-01-02T15-04-05"))
logFile, err := os.OpenFile(logFilename, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
- log.Fatalf("Failed to open log file: %v", err)
+ fmt.Printf("[err] filed to open log file: %v\n", err)
}
defer logFile.Close()
@@ -33,7 +52,7 @@ func main() {
if *responseFile != "" {
staticResponse, err = os.ReadFile(*responseFile)
if err != nil {
- log.Fatalf("Failed to read response file: %v", err)
+ fmt.Printf("[err] failed to read response file: %v\n", err)
}
}
@@ -72,14 +91,14 @@ func main() {
addr := *listen + ":" + *port
if *cert != "" && *key != "" {
- logger.Printf("Starting HTTPS server on %s\n", addr)
+ logger.Printf("[inf] starting https server on %s\n", addr)
err = http.ListenAndServeTLS(addr, *cert, *key, nil)
} else {
- logger.Printf("Starting HTTP server on %s\n", addr)
+ logger.Printf("[inf] starting http server on %s\n", addr)
err = http.ListenAndServe(addr, nil)
}
if err != nil {
- logger.Fatalf("Server failed: %v", err)
+ fmt.Printf("[err] server failed: %v\n", err)
}
}