Implement Logger (#228)

* Added new base logger

* updated example and test configs

* updated exchange helpers restful router & server

* logPath is now passed to the logger to remove dependency on common package

* updated everything besides exchanges to use new logger

* alphapoint to bitmex done

* updated bitmex bitstamp bittrex btcc and also performance changes to logger

* btcmarkets coinbase coinut exmo gateio wrappers updated

* gateio and gemini logger updated

* hitbtc huobi itbit & kraken updated

* All exchanges updatd

* return correct error for disabled websocket

* don't disconnect client on invalid json

* updated router internal logging

* log.Fatal to t.Error for tests

* Changed from fatal to error failure to set maxprocs

* output ANSI codes for everything but windows for now due to lack of windows support

* added error handling to logger and unit tests

* clear wording on print -> log.print

* added benchmark test

* cleaned up import sections

* Updated logger based on PR requests (added default config options on failure/setting errors)

* ah this should fix travici enc config issue

* Load entire config and clear out logging to hopefully fix travisci issue

* wording & test error handling

* fixed formatting issues based on feedback

* fixed formatting issues based on feedback

* changed CheckDir to use mkdirall instead of mkdir and other changes based on feedback
This commit is contained in:
Andrew
2019-01-08 21:56:22 +11:00
committed by Adrian Gallagher
parent bfbd496c3a
commit d01e7bad72
103 changed files with 1028 additions and 657 deletions

View File

@@ -4,7 +4,6 @@ import (
"encoding/json"
"errors"
"fmt"
"log"
"net/url"
"reflect"
"strconv"
@@ -18,6 +17,7 @@ import (
exchange "github.com/thrasher-/gocryptotrader/exchanges"
"github.com/thrasher-/gocryptotrader/exchanges/request"
"github.com/thrasher-/gocryptotrader/exchanges/ticker"
log "github.com/thrasher-/gocryptotrader/logger"
)
const (
@@ -944,7 +944,7 @@ func (o *OKEX) SendAuthenticatedHTTPRequest(method string, values url.Values, re
path := o.APIUrl + apiVersion + method
if o.Verbose {
log.Printf("Sending POST request to %s with params %s\n", path, encoded)
log.Debugf("Sending POST request to %s with params %s\n", path, encoded)
}
headers := make(map[string]string)

View File

@@ -6,7 +6,6 @@ import (
"errors"
"fmt"
"io/ioutil"
"log"
"net/http"
"net/url"
"strconv"
@@ -16,7 +15,8 @@ import (
"github.com/gorilla/websocket"
"github.com/thrasher-/gocryptotrader/common"
"github.com/thrasher-/gocryptotrader/currency/pair"
"github.com/thrasher-/gocryptotrader/exchanges"
exchange "github.com/thrasher-/gocryptotrader/exchanges"
log "github.com/thrasher-/gocryptotrader/logger"
)
const (
@@ -203,7 +203,8 @@ func (o *OKEX) WsHandleData() {
if strings.Contains(string(resp.Raw), "pong") {
continue
} else {
log.Fatal("okex.go error -", err)
log.Error(err)
return
}
}
@@ -212,7 +213,7 @@ func (o *OKEX) WsHandleData() {
if common.StringContains(string(resp.Raw), "error_msg") {
err = common.JSONDecode(resp.Raw, &errResponse)
if err != nil {
log.Fatal(err)
log.Error(err)
}
o.Websocket.DataHandler <- fmt.Errorf("okex.go error - %s resp: %s ",
errResponse.ErrorMsg,
@@ -233,7 +234,8 @@ func (o *OKEX) WsHandleData() {
err = common.JSONDecode(multiStreamData.Data, &ticker)
if err != nil {
log.Fatal("OKEX Ticker Decode Error:", err)
log.Errorf("OKEX Ticker Decode Error: %s", err)
return
}
o.Websocket.DataHandler <- exchange.TickerData{
@@ -247,7 +249,8 @@ func (o *OKEX) WsHandleData() {
err = common.JSONDecode(multiStreamData.Data, &deals)
if err != nil {
log.Fatal("OKEX Deals Decode Error:", err)
log.Errorf("OKEX Deals Decode Error: %s", err)
return
}
for _, trade := range deals {
@@ -271,7 +274,8 @@ func (o *OKEX) WsHandleData() {
err := common.JSONDecode(multiStreamData.Data, &klines)
if err != nil {
log.Fatal("OKEX Klines Decode Error:", err)
log.Errorf("OKEX Klines Decode Error: %s", err)
return
}
for _, kline := range klines {
@@ -300,7 +304,8 @@ func (o *OKEX) WsHandleData() {
err := common.JSONDecode(multiStreamData.Data, &depth)
if err != nil {
log.Fatal("OKEX Depth Decode Error:", err)
log.Errorf("OKEX Depth Decode Error: %s", err)
return
}
o.Websocket.DataHandler <- exchange.WebsocketOrderbookUpdate{

View File

@@ -3,7 +3,6 @@ package okex
import (
"errors"
"fmt"
"log"
"strconv"
"sync"
@@ -12,6 +11,7 @@ import (
exchange "github.com/thrasher-/gocryptotrader/exchanges"
"github.com/thrasher-/gocryptotrader/exchanges/orderbook"
"github.com/thrasher-/gocryptotrader/exchanges/ticker"
log "github.com/thrasher-/gocryptotrader/logger"
)
// Start starts the OKEX go routine
@@ -26,14 +26,14 @@ func (o *OKEX) Start(wg *sync.WaitGroup) {
// Run implements the OKEX wrapper
func (o *OKEX) Run() {
if o.Verbose {
log.Printf("%s Websocket: %s. (url: %s).\n", o.GetName(), common.IsEnabled(o.Websocket.IsEnabled()), o.WebsocketURL)
log.Printf("%s polling delay: %ds.\n", o.GetName(), o.RESTPollingDelay)
log.Printf("%s %d currencies enabled: %s.\n", o.GetName(), len(o.EnabledPairs), o.EnabledPairs)
log.Debugf("%s Websocket: %s. (url: %s).\n", o.GetName(), common.IsEnabled(o.Websocket.IsEnabled()), o.WebsocketURL)
log.Debugf("%s polling delay: %ds.\n", o.GetName(), o.RESTPollingDelay)
log.Debugf("%s %d currencies enabled: %s.\n", o.GetName(), len(o.EnabledPairs), o.EnabledPairs)
}
prods, err := o.GetSpotInstruments()
if err != nil {
log.Printf("OKEX failed to obtain available spot instruments. Err: %d", err)
log.Errorf("OKEX failed to obtain available spot instruments. Err: %d", err)
return
}
@@ -44,7 +44,8 @@ func (o *OKEX) Run() {
err = o.UpdateCurrencies(pairs, false, false)
if err != nil {
log.Printf("OKEX failed to update available currencies. Err: %s", err)
log.Errorf("OKEX failed to update available currencies. Err: %s", err)
return
}
}