-
Notifications
You must be signed in to change notification settings - Fork 763
/
main.go
75 lines (69 loc) · 1.33 KB
/
main.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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package main
import (
"bufio"
"fmt"
"io"
"os"
"os/signal"
"syscall"
"time"
"yiyun/common/log"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/daemon/logger"
"github.com/docker/docker/daemon/logger/streamlog"
"github.com/pborman/uuid"
)
func main() {
address := "127.0.0.1:6362"
if len(os.Args) > 1 {
address = os.Args[1]
}
var logs []logger.Logger
for i := 0; i < 20; i++ {
log, err := streamlog.New(logger.Context{
ContainerID: uuid.New(),
ContainerEnv: []string{"TENANT_ID=" + uuid.New(), "SERVICE_ID=" + uuid.New()},
Config: map[string]string{"stream-server": address},
})
if err != nil {
logrus.Error(err)
return
}
go work(log)
logs = append(logs, log)
}
term := make(chan os.Signal)
signal.Notify(term, os.Interrupt, syscall.SIGTERM)
select {
case <-term:
log.Warn("Received SIGTERM, exiting gracefully...")
}
for _, l := range logs {
l.Close()
}
}
func work(log logger.Logger) {
for i := 0; i < 1; i++ {
fi, err := os.Open("./log.txt")
if err != nil {
fmt.Printf("Error: %s\n", err)
return
}
defer fi.Close()
br := bufio.NewReader(fi)
for {
a, _, c := br.ReadLine()
if c == io.EOF {
break
}
err := log.Log(&logger.Message{
Line: a,
Timestamp: time.Now(),
Source: "stdout",
})
if err != nil {
return
}
}
}
}