Compare commits

..

2 Commits

Author SHA1 Message Date
d214fff28a fix version in doc 2023-02-28 18:54:34 -05:00
f241c162e7 log sender IP, use port 8080 2023-02-28 18:50:40 -05:00
2 changed files with 11 additions and 8 deletions

View File

@ -15,9 +15,9 @@ docker run \
--name reqlog \ --name reqlog \
--restart always \ --restart always \
-d \ -d \
-p 3000:3000 \ -p 8080:8080 \
-v $(pwd)/requests.log:/requests.log \ -v $(pwd)/requests.log:/requests.log \
git.roeber.dev/jon/reqlog:v0.0.1 git.roeber.dev/jon/reqlog:v0.0.2
``` ```
4. Test: 4. Test:
@ -25,7 +25,7 @@ docker run \
```bash ```bash
curl \ curl \
-X POST \ -X POST \
http://localhost:3000/ \ http://localhost:8080/ \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{"temp": 98.6}' -d '{"temp": 98.6}'
``` ```

13
main.go
View File

@ -30,8 +30,11 @@ func post(w http.ResponseWriter, r *http.Request) {
w.Write([]byte(err.Error())) w.Write([]byte(err.Error()))
return return
} }
dump := logString(r.RemoteAddr, reqDump)
// log to stdout // log to stdout
fmt.Print(logString(reqDump)) fmt.Print(dump)
// log to logfile // log to logfile
lf, err := os.OpenFile(*logFile, os.O_CREATE | os.O_APPEND | os.O_WRONLY, 0644) lf, err := os.OpenFile(*logFile, os.O_CREATE | os.O_APPEND | os.O_WRONLY, 0644)
@ -41,16 +44,16 @@ func post(w http.ResponseWriter, r *http.Request) {
w.Write([]byte(fmt.Sprintf("failed to open log file: %v", err))) w.Write([]byte(fmt.Sprintf("failed to open log file: %v", err)))
} }
defer lf.Close() defer lf.Close()
lf.WriteString(logString(reqDump)) lf.WriteString(dump)
// echo log message as response // echo log message as response
w.WriteHeader(200) w.WriteHeader(200)
w.Write([]byte(logString(reqDump))) w.Write([]byte(dump))
} }
func logString(reqDump []byte) string { func logString(senderIP string, reqDump []byte) string {
var sb strings.Builder var sb strings.Builder
sb.WriteString(fmt.Sprintf("Received request at %v:\n\n", time.Now())) sb.WriteString(fmt.Sprintf("Received request from %v at %v:\n\n", senderIP, time.Now()))
sb.Write(reqDump) sb.Write(reqDump)
sb.WriteString("\n\n") sb.WriteString("\n\n")
return sb.String() return sb.String()