-
Notifications
You must be signed in to change notification settings - Fork 0
/
transport.go
56 lines (49 loc) · 1.2 KB
/
transport.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package logo
import ()
/*
List of transports
*/
const (
Console = iota
File = iota
)
/*
A Transport struct
*/
type Transport struct {
Type int
Write func(*Transport, string)
ConsoleColorTheme *ConsoleColorTheme
HTMLColorTheme *HTMLColorTheme
Data []interface{}
JSONFormatted bool
}
/*
JSON Formatted struct
*/
type JSONFormatted struct {
Prefix string `json:"prefix,omitempty"`
Suffix string `json:"suffix,omitempty"`
Level string `json:"level"`
GoRoutineID string `json:"goroutineid,omitempty"`
Time string `json:"time,omitempty"`
Text string `json:"text"`
}
/*
Attach a new Transport to a Logger
*/
func (l *Logger) AddTransport(t int, param ...interface{}) *Transport {
var newTransport Transport
switch t {
case Console:
newTransport.Type = Console
newTransport.Write = ConsoleWrite
l.Transports = append(l.Transports, newTransport)
case File:
newTransport.Type = File
newTransport.Write = FileWrite
newTransport.Data = []interface{}{param[0].(string)}
l.Transports = append(l.Transports, newTransport)
}
return &(l.Transports[len(l.Transports)-1]) // Return the pointer of last Transport of the Logger
}