Simple service for logging all incoming requests
As binary
go install github.com/negasus/logserver@latestOr you can use docker image
docker pull negasus/logserver-aor env variableLISTEN_ADDRfor define listen address (default::2000)-bor env variableRESPONSE_BODYfor define response body (default:empty)-cor env variableRESPONSE_CODEfor define response status code (default:200)-tor env variableCONTENT_TYPEfor define response content type header (default:empty)-for env variableFILE_SERVERfor define file server path (default:empty)
If you define the response body,
\nwill be replaced to new line separator, and\twill be replaced totab
You can specify filename for response body. You should define response body as file://<filename_path>
If you use -f, you should not use -b, -c and -t params
Example:
# use /home/user/demo.json for response body
$ logserver -b file:///home/user/demo.json
docker run -d -p 2000:2000 negasus/logserver
curl 127.0.0.1:2000
curl --header "Content-Type: application/json" \
--request POST \
--data '{"username":"xyz","password":"xyz"}' \
http://127.0.0.1:2000/api/loginoutput
___________[ 1 ]___________
| 2021-07-28 11:31:45.939254 +0300 MSK m=+4.341261653
| [127.0.0.1:52654] GET /
|
| User-Agent: [curl/7.64.1]
| Accept: [*/*]
___________[ 2 ]___________
| 2021-07-28 11:31:48.179909 +0300 MSK m=+6.581954448
| [127.0.0.1:52655] POST /api/login
|
| User-Agent: [curl/7.64.1]
| Accept: [*/*]
| Content-Type: [application/json]
| Content-Length: [35]
{"username":"xyz","password":"xyz"}
- add env for fileserver
- refactoring
- print headers as "%#v" for convenience parsing multiple headers
- add
content-typeoptions - use file for response body
- go 1.17
- replace
\nand\tin the response body
- add response status code
- decode gzip request body if needed
- add response body
- output application version on start
- add CORS headers
- initial version