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

@@ -10,7 +10,6 @@ import (
"errors"
"fmt"
"io/ioutil"
"log"
"net/http"
"net/url"
"strconv"
@@ -24,6 +23,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 (

View File

@@ -6,7 +6,6 @@ import (
"errors"
"fmt"
"io/ioutil"
"log"
"math/big"
"net/http"
"net/url"
@@ -15,8 +14,9 @@ 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"
"github.com/thrasher-/gocryptotrader/exchanges/orderbook"
log "github.com/thrasher-/gocryptotrader/logger"
)
const (
@@ -81,7 +81,7 @@ func (h *HUOBI) WsReadData() {
default:
_, resp, err := h.WebsocketConn.ReadMessage()
if err != nil {
log.Fatal(err)
log.Error(err)
}
h.Websocket.TrafficAlert <- struct{}{}
@@ -89,12 +89,12 @@ func (h *HUOBI) WsReadData() {
b := bytes.NewReader(resp)
gReader, err := gzip.NewReader(b)
if err != nil {
log.Fatal(err)
log.Error(err)
}
unzipped, err := ioutil.ReadAll(gReader)
if err != nil {
log.Fatal(err)
log.Error(err)
}
gReader.Close()
@@ -115,7 +115,7 @@ func (h *HUOBI) WsHandleData() {
var init WsResponse
err := common.JSONDecode(resp.Raw, &init)
if err != nil {
log.Fatal(err)
log.Error(err)
}
if init.Status == "error" {
@@ -132,7 +132,7 @@ func (h *HUOBI) WsHandleData() {
if init.Ping != 0 {
err = h.WebsocketConn.WriteJSON(`{"pong":1337}`)
if err != nil {
log.Fatal(err)
log.Error(err)
}
continue
}
@@ -142,7 +142,7 @@ func (h *HUOBI) WsHandleData() {
var depth WsDepth
err := common.JSONDecode(resp.Raw, &depth)
if err != nil {
log.Fatal(err)
log.Error(err)
}
data := common.SplitStrings(depth.Channel, ".")
@@ -153,7 +153,7 @@ func (h *HUOBI) WsHandleData() {
var kline WsKline
err := common.JSONDecode(resp.Raw, &kline)
if err != nil {
log.Fatal(err)
log.Error(err)
}
data := common.SplitStrings(kline.Channel, ".")
@@ -174,7 +174,7 @@ func (h *HUOBI) WsHandleData() {
var trade WsTrade
err := common.JSONDecode(resp.Raw, &trade)
if err != nil {
log.Fatal(err)
log.Error(err)
}
data := common.SplitStrings(trade.Channel, ".")

View File

@@ -3,16 +3,16 @@ package huobi
import (
"errors"
"fmt"
"log"
"strconv"
"sync"
"github.com/thrasher-/gocryptotrader/common"
"github.com/thrasher-/gocryptotrader/config"
"github.com/thrasher-/gocryptotrader/currency/pair"
"github.com/thrasher-/gocryptotrader/exchanges"
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 HUOBI go routine
@@ -27,14 +27,14 @@ func (h *HUOBI) Start(wg *sync.WaitGroup) {
// Run implements the HUOBI wrapper
func (h *HUOBI) Run() {
if h.Verbose {
log.Printf("%s Websocket: %s (url: %s).\n", h.GetName(), common.IsEnabled(h.Websocket.IsEnabled()), huobiSocketIOAddress)
log.Printf("%s polling delay: %ds.\n", h.GetName(), h.RESTPollingDelay)
log.Printf("%s %d currencies enabled: %s.\n", h.GetName(), len(h.EnabledPairs), h.EnabledPairs)
log.Debugf("%s Websocket: %s (url: %s).\n", h.GetName(), common.IsEnabled(h.Websocket.IsEnabled()), huobiSocketIOAddress)
log.Debugf("%s polling delay: %ds.\n", h.GetName(), h.RESTPollingDelay)
log.Debugf("%s %d currencies enabled: %s.\n", h.GetName(), len(h.EnabledPairs), h.EnabledPairs)
}
exchangeProducts, err := h.GetSymbols()
if err != nil {
log.Printf("%s Failed to get available symbols.\n", h.GetName())
log.Errorf("%s Failed to get available symbols.\n", h.GetName())
} else {
forceUpgrade := false
if common.StringDataContains(h.EnabledPairs, "CNY") || common.StringDataContains(h.AvailablePairs, "CNY") {
@@ -45,7 +45,7 @@ func (h *HUOBI) Run() {
cfg := config.GetConfig()
exchCfg, errCNY := cfg.GetExchangeConfig(h.Name)
if err != nil {
log.Printf("%s failed to get exchange config. %s\n", h.Name, errCNY)
log.Errorf("%s failed to get exchange config. %s\n", h.Name, errCNY)
return
}
exchCfg.BaseCurrencies = "USD"
@@ -53,7 +53,7 @@ func (h *HUOBI) Run() {
errCNY = cfg.UpdateExchangeConfig(exchCfg)
if errCNY != nil {
log.Printf("%s failed to update config. %s\n", h.Name, errCNY)
log.Errorf("%s failed to update config. %s\n", h.Name, errCNY)
return
}
}
@@ -66,16 +66,16 @@ func (h *HUOBI) Run() {
if forceUpgrade {
enabledPairs := []string{"btc-usdt"}
log.Println("WARNING: Available and enabled pairs for Huobi reset due to config upgrade, please enable the ones you would like again")
log.Warn("Available and enabled pairs for Huobi reset due to config upgrade, please enable the ones you would like again")
err = h.UpdateCurrencies(enabledPairs, true, true)
if err != nil {
log.Printf("%s Failed to update enabled currencies.\n", h.GetName())
log.Errorf("%s Failed to update enabled currencies.\n", h.GetName())
}
}
err = h.UpdateCurrencies(currencies, false, forceUpgrade)
if err != nil {
log.Printf("%s Failed to update available currencies.\n", h.GetName())
log.Errorf("%s Failed to update available currencies.\n", h.GetName())
}
}
}