Files
gocryptotrader/log/sublogger_types.go
Ryan O'Hara-Reid ac692b04f4 log: fix bug, expand test coverage and slightly optimize (#847)
* log: fix bugs expand coverage and optimise

* log: fix linter issues

* log: fix linter issue and pack methods in same file

* log: drop defer

* logger: move global check inside getfields  and remove unused test function

* logger: Increase note thanks @gloriouscode

* logger: wrap error with writer type

* logger: change variable name

* logger: change variable names and remove validsublogger func as it doesn't add functionality over a standard map call

* logs: error when unsupported output is applied on setup calls

* logs: add glorious suggestion

* logger: add protection to reduce olympic gold medal races

* logger: fix linter issues

* log: glorious niterinos
2021-11-30 16:43:27 +11:00

60 lines
1.2 KiB
Go

package log
import (
"io"
"sync"
)
// Global vars related to the logger package
var (
SubLoggers = map[string]*SubLogger{}
Global *SubLogger
BackTester *SubLogger
ConnectionMgr *SubLogger
CommunicationMgr *SubLogger
APIServerMgr *SubLogger
ConfigMgr *SubLogger
DatabaseMgr *SubLogger
DataHistory *SubLogger
GCTScriptMgr *SubLogger
OrderMgr *SubLogger
PortfolioMgr *SubLogger
SyncMgr *SubLogger
TimeMgr *SubLogger
WebsocketMgr *SubLogger
EventMgr *SubLogger
DispatchMgr *SubLogger
RequestSys *SubLogger
ExchangeSys *SubLogger
GRPCSys *SubLogger
RESTSys *SubLogger
Ticker *SubLogger
OrderBook *SubLogger
Trade *SubLogger
Fill *SubLogger
)
// SubLogger defines a sub logger can be used externally for packages wanted to
// leverage GCT library logger features.
type SubLogger struct {
name string
levels Levels
output io.Writer
mtx sync.RWMutex
}
// logFields is used to store data in a non-global and thread-safe manner
// so logs cannot be modified mid-log causing a data-race issue
type logFields struct {
info bool
warn bool
debug bool
error bool
name string
output io.Writer
logger Logger
}