log sender IP, use port 8080
This commit is contained in:
parent
41e0a021f6
commit
f241c162e7
@ -15,7 +15,7 @@ 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.1
|
||||||
```
|
```
|
||||||
@ -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
13
main.go
@ -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()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user