u.DOut -> log.Debug
and other logging switches. I kept the u.PErr and u.POut in cli commands, as those do need to write raw output directly.
Juan Batiz-Benet committed
Oct 9, 2014 at 04:48 UTC
972c0f7b4b909415f3bf69a95109f408cc60c230
19 files changed
+68
-74
core/core.go
+5
-5
@@ -213,12 +213,12 @@ func initIdentity(cfg *config.Config, online bool) (*peer.Peer, error) {
213
func initConnections(ctx context.Context, cfg *config.Config, pstore peer.Peerstore, route *dht.IpfsDHT) {
214
for _, p := range cfg.Bootstrap {
215
if p.PeerID == "" {
216
- u.PErr("error: peer does not include PeerID. %v\n", p)
216
+ log.Error("error: peer does not include PeerID. %v", p)
217
}
218
219
maddr, err := ma.NewMultiaddr(p.Address)
220
if err != nil {
221
- u.PErr("error: %v\n", err)
221
+ log.Error("%s", err)
222
continue
223
}
224
@@ -227,12 +227,12 @@ func initConnections(ctx context.Context, cfg *config.Config, pstore peer.Peerst
227
npeer.AddAddress(maddr)
228
229
if err = pstore.Put(npeer); err != nil {
230
- u.PErr("Bootstrapping error: %v\n", err)
230
+ log.Error("Bootstrapping error: %v", err)
231
continue
232
}
233
234
if _, err = route.Connect(ctx, npeer); err != nil {
235
- u.PErr("Bootstrapping error: %v\n", err)
235
+ log.Error("Bootstrapping error: %v", err)
236
}
237
}
238
}
@@ -244,6 +244,6 @@ func (n *IpfsNode) PinDagNode(nd *merkledag.Node) error {
244
245
// PinDagNodeRecursively ensures a given node is stored persistently locally
246
func (n *IpfsNode) PinDagNodeRecursively(nd *merkledag.Node, depth int) error {
247
- u.DOut("Pinning node recursively. Currently No-Op\n")
247
+ log.Debug("Pinning node recursively. Currently No-Op")
248
return nil
249
}
crypto/key.go
+3
-1
@@ -19,6 +19,8 @@ import (
19
u "github.com/jbenet/go-ipfs/util"
20
)
21
22
+var log = u.Logger("crypto")
23
+
24
var ErrBadKeyType = errors.New("invalid or unsupported key type")
25
26
const (
@@ -97,7 +99,7 @@ func GenerateEKeyPair(curveName string) ([]byte, GenSharedKey, error) {
99
}
100
101
pubKey := elliptic.Marshal(curve, x, y)
100
- u.PErr("GenerateEKeyPair %d\n", len(pubKey))
102
+ log.Debug("GenerateEKeyPair %d", len(pubKey))
103
104
done := func(theirPub []byte) ([]byte, error) {
105
// Verify and unpack node's public key.
crypto/spipe/handshake.go
+7
-5
@@ -23,6 +23,8 @@ import (
23
u "github.com/jbenet/go-ipfs/util"
24
)
25
26
+var log = u.Logger("handshake")
27
+
28
// List of supported ECDH curves
29
var SupportedExchanges = "P-256,P-224,P-384,P-521"
30
@@ -49,7 +51,7 @@ func (s *SecurePipe) handshake() error {
51
return err
52
}
53
52
- // u.DOut("handshake: %s <--> %s\n", s.local, s.remote)
54
+ log.Debug("handshake: %s <--> %s", s.local, s.remote)
55
myPubKey, err := s.local.PubKey.Bytes()
56
if err != nil {
57
return err
@@ -101,7 +103,7 @@ func (s *SecurePipe) handshake() error {
103
if err != nil {
104
return err
105
}
104
- u.DOut("%s Remote Peer Identified as %s\n", s.local, s.remote)
106
+ log.Debug("%s Remote Peer Identified as %s", s.local, s.remote)
107
108
exchange, err := selectBest(SupportedExchanges, proposeResp.GetExchanges())
109
if err != nil {
@@ -205,7 +207,7 @@ func (s *SecurePipe) handshake() error {
207
return errors.New("Negotiation failed.")
208
}
209
208
- u.DOut("%s handshake: Got node id: %s\n", s.local, s.remote)
210
+ log.Debug("%s handshake: Got node id: %s", s.local, s.remote)
211
return nil
212
}
213
@@ -233,7 +235,7 @@ func (s *SecurePipe) handleSecureIn(hashType string, tIV, tCKey, tMKey []byte) {
235
return
236
}
237
236
- // u.DOut("[peer %s] secure in [from = %s] %d\n", s.local, s.remote, len(data))
238
+ // log.Debug("[peer %s] secure in [from = %s] %d", s.local, s.remote, len(data))
239
if len(data) <= macSize {
240
continue
241
}
@@ -281,7 +283,7 @@ func (s *SecurePipe) handleSecureOut(hashType string, mIV, mCKey, mMKey []byte)
283
copy(buff[len(data):], myMac.Sum(nil))
284
myMac.Reset()
285
284
- // u.DOut("[peer %s] secure out [to = %s] %d\n", s.local, s.remote, len(buff))
286
+ // log.Debug("[peer %s] secure out [to = %s] %d", s.local, s.remote, len(buff))
287
s.insecure.Out <- buff
288
}
289
}
daemon/daemon.go
+1
-1
@@ -122,7 +122,7 @@ func (dl *DaemonListener) handleConnection(conn net.Conn) {
122
return
123
}
124
125
- u.DOut("Got command: %v\n", command)
125
+ log.Debug("Got command: %v", command)
126
switch command.Command {
127
case "add":
128
err = commands.Add(dl.node, command.Args, command.Opts, conn)
exchange/bitswap/bitswap.go
+8
-6
@@ -15,6 +15,8 @@ import (
15
u "github.com/jbenet/go-ipfs/util"
16
)
17
18
+var log = u.Logger("bitswap")
19
+
20
// NetMessageSession initializes a BitSwap session that communicates over the
21
// provided NetMessage service
22
func NetMessageSession(parent context.Context, p *peer.Peer, s bsnet.NetMessageService, directory bsnet.Routing, d ds.Datastore, nice bool) exchange.Interface {
@@ -61,7 +63,7 @@ type bitswap struct {
63
//
64
// TODO ensure only one active request per key
65
func (bs *bitswap) Block(parent context.Context, k u.Key) (*blocks.Block, error) {
64
- u.DOut("Get Block %v\n", k)
66
+ log.Debug("Get Block %v", k)
67
68
ctx, cancelFunc := context.WithCancel(parent)
69
bs.wantlist.Add(k)
@@ -77,7 +79,7 @@ func (bs *bitswap) Block(parent context.Context, k u.Key) (*blocks.Block, error)
79
}
80
message.AppendWanted(k)
81
for iiiii := range peersToQuery {
80
- // u.DOut("bitswap got peersToQuery: %s\n", iiiii)
82
+ // log.Debug("bitswap got peersToQuery: %s", iiiii)
83
go func(p *peer.Peer) {
84
response, err := bs.sender.SendRequest(ctx, p, message)
85
if err != nil {
@@ -110,7 +112,7 @@ func (bs *bitswap) Block(parent context.Context, k u.Key) (*blocks.Block, error)
112
// HasBlock announces the existance of a block to bitswap, potentially sending
113
// it to peers (Partners) whose WantLists include it.
114
func (bs *bitswap) HasBlock(ctx context.Context, blk blocks.Block) error {
113
- u.DOut("Has Block %v\n", blk.Key())
115
+ log.Debug("Has Block %v", blk.Key())
116
bs.wantlist.Remove(blk.Key())
117
bs.sendToPeersThatWant(ctx, blk)
118
return bs.routing.Provide(ctx, blk.Key())
@@ -119,7 +121,7 @@ func (bs *bitswap) HasBlock(ctx context.Context, blk blocks.Block) error {
121
// TODO(brian): handle errors
122
func (bs *bitswap) ReceiveMessage(ctx context.Context, p *peer.Peer, incoming bsmsg.BitSwapMessage) (
123
*peer.Peer, bsmsg.BitSwapMessage) {
122
- u.DOut("ReceiveMessage from %v\n", p.Key())
124
+ log.Debug("ReceiveMessage from %v", p.Key())
125
126
if p == nil {
127
// TODO propagate the error upward
@@ -173,10 +175,10 @@ func (bs *bitswap) send(ctx context.Context, p *peer.Peer, m bsmsg.BitSwapMessag
175
}
176
177
func (bs *bitswap) sendToPeersThatWant(ctx context.Context, block blocks.Block) {
176
- u.DOut("Sending %v to peers that want it\n", block.Key())
178
+ log.Debug("Sending %v to peers that want it", block.Key())
179
for _, p := range bs.strategy.Peers() {
180
if bs.strategy.BlockIsWantedByPeer(block.Key(), p) {
179
- u.DOut("%v wants %v\n", p, block.Key())
181
+ log.Debug("%v wants %v", p, block.Key())
182
if bs.strategy.ShouldSendBlockToPeer(block.Key(), p) {
183
message := bsmsg.New()
184
message.AppendBlock(block)
fuse/readonly/readonly_unix.go
+2
-2
@@ -106,7 +106,7 @@ func (s *Node) Attr() fuse.Attr {
106
Blocks: uint64(len(s.Nd.Links)),
107
}
108
default:
109
- u.PErr("Invalid data type.")
109
+ log.Error("Invalid data type.")
110
return fuse.Attr{}
111
}
112
}
@@ -143,7 +143,7 @@ func (s *Node) ReadDir(intr fs.Intr) ([]fuse.Dirent, fuse.Error) {
143
144
// ReadAll reads the object data as file data
145
func (s *Node) ReadAll(intr fs.Intr) ([]byte, fuse.Error) {
146
- u.DOut("Read node.\n")
146
+ log.Debug("Read node.")
147
r, err := uio.NewDagReader(s.Nd, s.Ipfs.DAG)
148
if err != nil {
149
return nil, err
net/conn/conn.go
+3
-1
@@ -12,6 +12,8 @@ import (
12
u "github.com/jbenet/go-ipfs/util"
13
)
14
15
+var log = u.Logger("conn")
16
+
17
// ChanBuffer is the size of the buffer in the Conn Chan
18
const ChanBuffer = 10
19
@@ -87,7 +89,7 @@ func (c *Conn) newChans() error {
89
90
// Close closes the connection, and associated channels.
91
func (c *Conn) Close() error {
90
- u.DOut("Closing Conn.\n")
92
+ log.Debug("Closing Conn with %v", c.Peer)
93
if c.Conn == nil {
94
return fmt.Errorf("Already closed") // already closed
95
}
net/mux/mux.go
+6
-4
@@ -11,6 +11,8 @@ import (
11
proto "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/goprotobuf/proto"
12
)
13
14
+var log = u.Logger("muxer")
15
+
16
// Protocol objects produce + consume raw data. They are added to the Muxer
17
// with a ProtocolID, which is added to outgoing payloads. Muxer properly
18
// encapsulates and decapsulates when interfacing with its Protocols. The
@@ -125,21 +127,21 @@ func (m *Muxer) handleIncomingMessage(m1 msg.NetMessage) {
127
128
data, pid, err := unwrapData(m1.Data())
129
if err != nil {
128
- u.PErr("muxer de-serializing error: %v\n", err)
130
+ log.Error("muxer de-serializing error: %v", err)
131
return
132
}
133
134
m2 := msg.New(m1.Peer(), data)
135
proto, found := m.Protocols[pid]
136
if !found {
135
- u.PErr("muxer unknown protocol %v\n", pid)
137
+ log.Error("muxer unknown protocol %v", pid)
138
return
139
}
140
141
select {
142
case proto.GetPipe().Incoming <- m2:
143
case <-m.ctx.Done():
142
- u.PErr("%v\n", m.ctx.Err())
144
+ log.Error("%s", m.ctx.Err())
145
return
146
}
147
}
@@ -167,7 +169,7 @@ func (m *Muxer) handleOutgoingMessages(pid ProtocolID, proto Protocol) {
169
func (m *Muxer) handleOutgoingMessage(pid ProtocolID, m1 msg.NetMessage) {
170
data, err := wrapData(m1.Data(), pid)
171
if err != nil {
170
- u.PErr("muxer serializing error: %v\n", err)
172
+ log.Error("muxer serializing error: %v", err)
173
return
174
}
175
net/mux/mux_test.go
+4
-4
@@ -136,7 +136,7 @@ func TestSimultMuxer(t *testing.T) {
136
m := msg.New(peer1, []byte(s))
137
mux1.Protocols[pid].GetPipe().Outgoing <- m
138
counts[pid][0][0]++
139
- u.DOut("sent %v\n", s)
139
+ // log.Debug("sent %v", s)
140
}
141
}
142
@@ -153,7 +153,7 @@ func TestSimultMuxer(t *testing.T) {
153
m := msg.New(peer1, d)
154
mux1.Incoming <- m
155
counts[pid][1][0]++
156
- u.DOut("sent %v\n", s)
156
+ // log.Debug("sent %v", s)
157
}
158
}
159
@@ -166,7 +166,7 @@ func TestSimultMuxer(t *testing.T) {
166
t.Error(err)
167
}
168
169
- u.DOut("got %v\n", string(data))
169
+ // log.Debug("got %v", string(data))
170
counts[pid][1][1]++
171
172
case <-ctx.Done():
@@ -180,7 +180,7 @@ func TestSimultMuxer(t *testing.T) {
180
select {
181
case m := <-mux1.Protocols[pid].GetPipe().Incoming:
182
counts[pid][0][1]++
183
- u.DOut("got %v\n", string(m.Data()))
183
+ // log.Debug("got %v", string(m.Data()))
184
case <-ctx.Done():
185
return
186
}
net/service/service.go
+8
-6
@@ -10,6 +10,8 @@ import (
10
context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
11
)
12
13
+var log = u.Logger("service")
14
+
15
// ErrNoResponse is returned by Service when a Request did not get a response,
16
// and no other error happened
17
var ErrNoResponse = errors.New("no response to request")
@@ -82,7 +84,7 @@ func (s *Service) sendMessage(ctx context.Context, m msg.NetMessage, rid Request
84
return err
85
}
86
85
- // u.DOut("Service send message [to = %s]\n", m.Peer())
87
+ // log.Debug("Service send message [to = %s]", m.Peer())
88
89
// send message
90
m2 := msg.New(m.Peer(), data)
@@ -169,14 +171,14 @@ func (s *Service) handleIncomingMessage(ctx context.Context, m msg.NetMessage) {
171
// unwrap the incoming message
172
data, rid, err := unwrapData(m.Data())
173
if err != nil {
172
- u.PErr("de-serializing error: %v\n", err)
174
+ log.Error("de-serializing error: %v", err)
175
}
176
m2 := msg.New(m.Peer(), data)
177
178
// if it's a request (or has no RequestID), handle it
179
if rid == nil || rid.IsRequest() {
180
if s.Handler == nil {
179
- u.PErr("service dropped msg: %v\n", m)
181
+ log.Error("service dropped msg: %v", m)
182
return // no handler, drop it.
183
}
184
@@ -187,7 +189,7 @@ func (s *Service) handleIncomingMessage(ctx context.Context, m msg.NetMessage) {
189
if r1 != nil {
190
err := s.sendMessage(ctx, r1, rid.Response())
191
if err != nil {
190
- u.PErr("error sending response message: %v\n", err)
192
+ log.Error("error sending response message: %v", err)
193
}
194
}
195
return
@@ -195,7 +197,7 @@ func (s *Service) handleIncomingMessage(ctx context.Context, m msg.NetMessage) {
197
198
// Otherwise, it is a response. handle it.
199
if !rid.IsResponse() {
198
- u.PErr("RequestID should identify a response here.\n")
200
+ log.Error("RequestID should identify a response here.")
201
}
202
203
key := RequestKey(m.Peer().ID, RequestID(rid))
@@ -204,7 +206,7 @@ func (s *Service) handleIncomingMessage(ctx context.Context, m msg.NetMessage) {
206
s.RequestsLock.RUnlock()
207
208
if !found {
207
- u.PErr("no request key %v (timeout?)\n", []byte(key))
209
+ log.Error("no request key %v (timeout?)", []byte(key))
210
return
211
}
212
net/swarm/conn.go
+6
-7
@@ -8,7 +8,6 @@ import (
8
spipe "github.com/jbenet/go-ipfs/crypto/spipe"
9
conn "github.com/jbenet/go-ipfs/net/conn"
10
msg "github.com/jbenet/go-ipfs/net/message"
11
- u "github.com/jbenet/go-ipfs/util"
11
12
ma "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr"
13
)
@@ -26,7 +25,7 @@ func (s *Swarm) listen() error {
25
if err != nil {
26
hasErr = true
27
retErr.Errors[i] = err
29
- u.PErr("Failed to listen on: %s [%s]", addr, err)
28
+ log.Error("Failed to listen on: %s [%s]", addr, err)
29
}
30
}
31
@@ -106,16 +105,16 @@ func (s *Swarm) connSetup(c *conn.Conn) error {
105
}
106
107
if c.Peer != nil {
109
- u.DOut("Starting connection: %s\n", c.Peer)
108
+ log.Debug("Starting connection: %s", c.Peer)
109
} else {
111
- u.DOut("Starting connection: [unknown peer]\n")
110
+ log.Debug("Starting connection: [unknown peer]")
111
}
112
113
if err := s.connSecure(c); err != nil {
114
return fmt.Errorf("Conn securing error: %v", err)
115
}
116
118
- u.DOut("Secured connection: %s\n", c.Peer)
117
+ log.Debug("Secured connection: %s", c.Peer)
118
119
// add address of connection to Peer. Maybe it should happen in connSecure.
120
c.Peer.AddAddress(c.Addr)
@@ -184,7 +183,7 @@ func (s *Swarm) fanOut() {
183
continue
184
}
185
187
- // u.DOut("[peer: %s] Sent message [to = %s]\n", s.local, msg.Peer())
186
+ // log.Debug("[peer: %s] Sent message [to = %s]", s.local, msg.Peer())
187
188
// queue it in the connection's buffer
189
conn.Secure.Out <- msg.Data()
@@ -212,7 +211,7 @@ func (s *Swarm) fanIn(c *conn.Conn) {
211
goto out
212
}
213
215
- // u.DOut("[peer: %s] Received message [from = %s]\n", s.local, c.Peer)
214
+ // log.Debug("[peer: %s] Received message [from = %s]", s.local, c.Peer)
215
216
msg := msg.New(c.Peer, data)
217
s.Incoming <- msg
net/swarm/swarm.go
+2
@@ -15,6 +15,8 @@ import (
15
ma "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr"
16
)
17
18
+var log = u.Logger("swarm")
19
+
20
// ErrAlreadyOpen signals that a connection to a peer is already open.
21
var ErrAlreadyOpen = errors.New("Error: Connection to this peer already open.")
22
path/path.go
+2
-2
@@ -40,11 +40,11 @@ func (s *Resolver) ResolvePath(fpath string) (*merkledag.Node, error) {
40
// first element in the path is a b58 hash (for now)
41
h, err := mh.FromB58String(parts[0])
42
if err != nil {
43
- u.DOut("given path element is not a base58 string.\n")
43
+ log.Debug("given path element is not a base58 string.\n")
44
return nil, err
45
}
46
47
- u.DOut("Resolve dag get.\n")
47
+ log.Debug("Resolve dag get.\n")
48
nd, err := s.DAG.Get(u.Key(h))
49
if err != nil {
50
return nil, err
routing/dht/Message.go
+1
-2
@@ -3,7 +3,6 @@ package dht
3
import (
4
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/goprotobuf/proto"
5
peer "github.com/jbenet/go-ipfs/peer"
6
- u "github.com/jbenet/go-ipfs/util"
6
)
7
8
func newMessage(typ Message_MessageType, key string, level int) *Message {
@@ -42,7 +41,7 @@ func peersToPBPeers(peers []*peer.Peer) []*Message_Peer {
41
func (m *Message) GetClusterLevel() int {
42
level := m.GetClusterLevelRaw() - 1
43
if level < 0 {
45
- u.DErr("GetClusterLevel: no routing level specified, assuming 0\n")
44
+ log.Error("GetClusterLevel: no routing level specified, assuming 0")
45
level = 0
46
}
47
return int(level)
routing/dht/dht_logger.go
+2
-4
@@ -3,8 +3,6 @@ package dht
3
import (
4
"encoding/json"
5
"time"
6
-
7
- u "github.com/jbenet/go-ipfs/util"
6
)
7
8
type logDhtRPC struct {
@@ -31,9 +29,9 @@ func (l *logDhtRPC) EndLog() {
29
func (l *logDhtRPC) Print() {
30
b, err := json.Marshal(l)
31
if err != nil {
34
- u.DOut(err.Error())
32
+ log.Debug(err.Error())
33
} else {
36
- u.DOut(string(b))
34
+ log.Debug(string(b))
35
}
36
}
37
routing/dht/ext_test.go
+1
-1
@@ -237,7 +237,7 @@ func TestNotFound(t *testing.T) {
237
238
ctx, _ := context.WithTimeout(context.Background(), time.Second*5)
239
v, err := d.GetValue(ctx, u.Key("hello"))
240
- u.DOut("get value got %v\n", v)
240
+ log.Debug("get value got %v", v)
241
if err != nil {
242
switch err {
243
case u.ErrNotFound:
routing/dht/routing.go
+6
-6
@@ -156,7 +156,7 @@ func (dht *IpfsDHT) FindProvidersAsync2(ctx context.Context, key u.Key, count in
156
go func(p *peer.Peer) {
157
pmes, err := dht.findProvidersSingle(ctx, p, key, 0)
158
if err != nil {
159
- u.PErr("%v\n", err)
159
+ log.Error("%s", err)
160
return
161
}
162
dht.addPeerListAsync(key, pmes.GetProviderPeers(), ps, count, peerOut)
@@ -207,11 +207,11 @@ func (dht *IpfsDHT) FindProviders(ctx context.Context, key u.Key) ([]*peer.Peer,
207
// handle providers
208
provs := pmes.GetProviderPeers()
209
if provs != nil {
210
- u.DOut("Got providers back from findProviders call!\n")
210
+ log.Debug("Got providers back from findProviders call!")
211
return dht.addProviders(key, provs), nil
212
}
213
214
- u.DOut("Didnt get providers, just closer peers.\n")
214
+ log.Debug("Didnt get providers, just closer peers.")
215
closer := pmes.GetCloserPeers()
216
if len(closer) == 0 {
217
level++
@@ -220,7 +220,7 @@ func (dht *IpfsDHT) FindProviders(ctx context.Context, key u.Key) ([]*peer.Peer,
220
221
np, err := dht.peerFromInfo(closer[0])
222
if err != nil {
223
- u.DOut("no peerFromInfo")
223
+ log.Debug("no peerFromInfo")
224
level++
225
continue
226
}
@@ -293,7 +293,7 @@ func (dht *IpfsDHT) findPeerMultiple(ctx context.Context, id peer.ID) (*peer.Pee
293
query := newQuery(u.Key(id), func(ctx context.Context, p *peer.Peer) (*dhtQueryResult, error) {
294
pmes, err := dht.findPeerSingle(ctx, p, id, routeLevel)
295
if err != nil {
296
- u.DErr("getPeer error: %v\n", err)
296
+ log.Error("%s getPeer error: %v", dht.self, err)
297
return nil, err
298
}
299
@@ -306,7 +306,7 @@ func (dht *IpfsDHT) findPeerMultiple(ctx context.Context, id peer.ID) (*peer.Pee
306
for i, fp := range plist {
307
nxtp, err := dht.peerFromInfo(fp)
308
if err != nil {
309
- u.DErr("findPeer error: %v\n", err)
309
+ log.Error("%s findPeer error: %v", dht.self, err)
310
continue
311
}
312
routing/kbucket/table.go
+1
-1
@@ -118,7 +118,7 @@ func copyPeersFromList(target ID, peerArr peerSorterArr, peerList *list.List) pe
118
}
119
peerArr = append(peerArr, &pd)
120
if e == nil {
121
- u.POut("list element was nil.\n")
121
+ log.Debug("list element was nil.\n")
122
return peerArr
123
}
124
}
util/util.go
-16
@@ -130,22 +130,6 @@ func POut(format string, a ...interface{}) {
130
fmt.Fprintf(os.Stdout, format, a...)
131
}
132
133
-// DErr is a shorthand debug printing function to output to Stderr.
134
-// Will only print if Debug is true.
135
-func DErr(format string, a ...interface{}) {
136
- if Debug {
137
- PErr(format, a...)
138
- }
139
-}
140
-
141
-// DOut is a shorthand debug printing function to output to Stdout.
142
-// Will only print if Debug is true.
143
-func DOut(format string, a ...interface{}) {
144
- if Debug {
145
- POut(format, a...)
146
- }
147
-}
148
-
133
var loggers = map[string]*logging.Logger{}
134
135
// SetupLogging will initialize the logger backend and set the flags.