Skip to content

Commit

Permalink
Merge pull request #227 from lyricnz/feature/verbose-http-logging
Browse files Browse the repository at this point in the history
Emit verbose HTTP logging for coingecko when DEBUG_HTTP is set
  • Loading branch information
miguelmota committed Oct 16, 2021
2 parents e704e00 + e49211e commit 5064dbf
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
11 changes: 11 additions & 0 deletions docs/content/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -493,3 +493,14 @@ draft: false
```bash
GO111MODULE=on go get github.com/cointop-sh/cointop
```

## How can I get more information when something is going wrong?

Cointop creates a logfile at `/tmp/cointop.log`. Normally nothing is written to this, but if you set the environment variable
`DEBUG=1` cointop will write a lot of output describing its operation. Furthermore, if you also set `DEBUG_HTTP=1` it will
emit lots about every HTTP request that cointop makes to coingecko (backend). Developers may ask for this information
to help diagnose any problems you may experience.

```bash
DEBUG=1 DEBUG_HTTP=1 cointop
```
12 changes: 12 additions & 0 deletions pkg/api/vendors/coingecko/v3/v3.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,11 @@ import (
"net/url"
"strings"

"os"

"github.com/cointop-sh/cointop/pkg/api/vendors/coingecko/format"
"github.com/cointop-sh/cointop/pkg/api/vendors/coingecko/v3/types"
log "github.com/sirupsen/logrus"
)

var baseURL = "https://api.coingecko.com/api/v3"
Expand All @@ -31,6 +34,11 @@ func NewClient(httpClient *http.Client) *Client {
// helper
// doReq HTTP client
func doReq(req *http.Request, client *http.Client) ([]byte, error) {
debugHttp := os.Getenv("DEBUG_HTTP") != ""
if debugHttp {
log.Debugf("doReq %s %s", req.Method, req.URL)
}

resp, err := client.Do(req)
if err != nil {
return nil, err
Expand All @@ -41,6 +49,10 @@ func doReq(req *http.Request, client *http.Client) ([]byte, error) {
return nil, err
}
if 200 != resp.StatusCode {
if debugHttp {
log.Warnf("doReq Got Status '%s' from %s %s", resp.Status, req.Method, req.URL)
log.Debugf("doReq Got Body: %s", body)
}
return nil, fmt.Errorf("%s", body)
}
return body, nil
Expand Down

0 comments on commit 5064dbf

Please sign in to comment.