Bladeren bron

[add] init.go 기본적인 로그작업

master
kidjung 4 jaren geleden
bovenliggende
commit
6f89ebadcb

+ 13
- 9
src/broker/modules/init.go Bestand weergeven

@@ -4,10 +4,10 @@ import (
4 4
 	"encoding/json"
5 5
 	"errors"
6 6
 	"fmt"
7
-	"github.com/fatih/color"
8 7
 	l4g "github.com/jeanphorn/log4go"
9 8
 	"net"
10 9
 	"net/rpc"
10
+	"strconv"
11 11
 )
12 12
 
13 13
 // TODO: RM 처리와 init.go 전반적으로 DI 이용하여 구현 RM 키등록 부분 구현 예정
@@ -131,7 +131,7 @@ func (receiver Receiver) MmReceive(args Args, reply *Reply) error { //
131 131
 
132 132
 //Recieve - MM가 MS로부터 메세지 전달받음
133 133
 func (moscato *Moscato) Receive(msg MsgUnit) (MsgUnit, error) {
134
-	var logger = newLogger()
134
+	logger := NewMyLogger()
135 135
 	defer logger.Sync()
136 136
 
137 137
 	//rpc call
@@ -163,18 +163,17 @@ func (moscato *Moscato) Receive(msg MsgUnit) (MsgUnit, error) {
163 163
 		newNode := MSNode{newMsg.From, newMsg.From}
164 164
 		resultAddNode := moscato.MicroServiceManager.AddMicroservice(newNode)
165 165
 		if resultAddNode {
166
-			//log.Println("Node added successful")
167
-			l4g.LOGGER("Test").Info("Node added successful")
166
+			logger.Info("Node added successful")
168 167
 		} else {
169
-			l4g.LOGGER("Test").Error("Node is already added, ignore RM")
168
+			logger.Error("Node is already added, ignore RM")
170 169
 			//log.Println("Node is already added, ignore RM")
171 170
 			return msg, nil
172 171
 		}
173 172
 
174 173
 		addr, _ := moscato.MicroServiceManager.GetIpaddr(newMsg.From)
175 174
 		moscato.SecureManager.RegKey(newMsg)
176
-		fmt.Println("Registered microservice: address", addr,
177
-			"/ key", moscato.SecureManager.GetNodeKey(newMsg.From))
175
+		logger.Debug("Registered microservice: address " + addr +
176
+			" / key " + strconv.FormatUint(uint64(moscato.SecureManager.GetNodeKey(newMsg.From)), 10))
178 177
 
179 178
 		// ackRM 메세지 전송
180 179
 		go moscato.Send2MS(addr, newMsg)
@@ -211,6 +210,9 @@ MM→MS
211 210
 */
212 211
 
213 212
 func (moscato *Moscato) Send2MS(ipaddress string, msg MsgUnit) {
213
+	logger := NewMyLogger()
214
+	defer logger.Sync()
215
+
214 216
 	client, err := rpc.Dial("tcp", ipaddress+":8150")
215 217
 	if err != nil {
216 218
 		fmt.Println(err)
@@ -232,7 +234,7 @@ func (moscato *Moscato) Send2MS(ipaddress string, msg MsgUnit) {
232 234
 	//log.Println(reply.CompleteLog) //잘 받았는지 확인 해줌
233 235
 	// 마이크로 서비스에게 받은 메시지는 노란색으로 출력
234 236
 	//log.Println(reply.CompleteLog)
235
-	//l4g.LOGGER("Test").Info(reply.CompleteLog)
237
+	logger.Debug(reply.CompleteLog)
236 238
 }
237 239
 
238 240
 //Matching을 용이하게 하기위한 메세지 가공 과정
@@ -278,6 +280,8 @@ func (moscato *Moscato) SendWithEncrypt() MsgUnit {
278 280
 }
279 281
 
280 282
 func (moscato *Moscato) Run() {
283
+	logger := NewMyLogger()
284
+	defer logger.Sync()
281 285
 
282 286
 	config := AppConfig{moscato}
283 287
 	config.config()
@@ -312,7 +316,7 @@ func (moscato *Moscato) Run() {
312 316
 	}
313 317
 
314 318
 	go Listen()
315
-	color.Blue("initializing complete.")
319
+	logger.Info("initializing complete")
316 320
 
317 321
 	fmt.Scanln()
318 322
 }

+ 3
- 3
src/broker/modules/logConfig.go Bestand weergeven

@@ -16,20 +16,20 @@ func MyEncoderConfig() zapcore.EncoderConfig {
16 16
 		MessageKey:     "M",
17 17
 		StacktraceKey:  "S",
18 18
 		LineEnding:     zapcore.DefaultLineEnding,
19
-		EncodeLevel:    zapcore.CapitalLevelEncoder,
19
+		EncodeLevel:    zapcore.CapitalColorLevelEncoder,
20 20
 		EncodeTime:     zapcore.ISO8601TimeEncoder,
21 21
 		EncodeDuration: zapcore.StringDurationEncoder,
22 22
 		EncodeCaller:   zapcore.ShortCallerEncoder,
23 23
 	}
24 24
 }
25 25
 
26
-func newLogger() *zap.Logger {
26
+func NewMyLogger() *zap.Logger {
27 27
 	cfg := zap.Config{
28 28
 		Level:            zap.NewAtomicLevelAt(zap.DebugLevel),
29 29
 		Development:      true,
30 30
 		Encoding:         "console",
31 31
 		EncoderConfig:    MyEncoderConfig(),
32
-		OutputPaths:      []string{"stdout"},
32
+		OutputPaths:      []string{"stdout", "./test.log"},
33 33
 		ErrorOutputPaths: []string{"stderr"},
34 34
 	}
35 35
 	logger, err := cfg.Build()

+ 9
- 9
src/broker/modules/manage.go Bestand weergeven

@@ -1,10 +1,5 @@
1 1
 package modules
2 2
 
3
-import (
4
-	"fmt"
5
-	"log"
6
-)
7
-
8 3
 //각 Microservice에 대한 정보 저장 노드
9 4
 type MSNode struct {
10 5
 	nodeName string //Nodename- 현재 데모에서는 IpAddress와 같음
@@ -23,8 +18,8 @@ func (node *MSNode) GetIpaddr() string {
23 18
 
24 19
 type NodeManager interface {
25 20
 	GetIpaddr(nodeName string) (string, bool) //IpAddress반환
26
-	AddMicroservice(node MSNode) bool //MS추가
27
-	RemoveMicroservice(nodeName string) bool //MS삭제
21
+	AddMicroservice(node MSNode) bool         //MS추가
22
+	RemoveMicroservice(nodeName string) bool  //MS삭제
28 23
 }
29 24
 
30 25
 //모든 Microservice정보 저장
@@ -34,7 +29,10 @@ type MStable struct {
34 29
 
35 30
 //MStable 생성자
36 31
 func NewMStable() *MStable {
37
-	defer fmt.Println("node manager setting complete.")
32
+	logger := NewMyLogger()
33
+	logger.Sync()
34
+
35
+	defer logger.Debug("node manager setting complete.")
38 36
 	return &MStable{NodeTable: make(map[string]MSNode)}
39 37
 }
40 38
 
@@ -66,12 +64,14 @@ func (manager *MStable) AddMicroservice(node MSNode) bool {
66 64
 
67 65
 //MS삭제
68 66
 func (manager *MStable) RemoveMicroservice(nodeName string) bool {
67
+	logger := NewMyLogger()
68
+	logger.Sync()
69 69
 	//삭제 전 존재여부 확인
70 70
 	_, exists := manager.NodeTable[nodeName] //해당 이름을 가진 Node가 있는지 검색
71 71
 
72 72
 	if exists {
73 73
 		delete(manager.NodeTable, nodeName) //존재한다면 삭제
74
-		log.Println("[" + nodeName + "] : service quit")
74
+		logger.Info("[" + nodeName + "] : service quit")
75 75
 		return true
76 76
 	} else {
77 77
 		return false

+ 7
- 5
src/broker/modules/queue.go Bestand weergeven

@@ -2,7 +2,6 @@ package modules
2 2
 
3 3
 import (
4 4
 	"errors"
5
-	"fmt"
6 5
 )
7 6
 
8 7
 type MsgQueue struct {
@@ -11,19 +10,22 @@ type MsgQueue struct {
11 10
 }
12 11
 
13 12
 type QueueOperate interface {
14
-	queue_init() error	//Queue 초기화 멤버함수
15
-	push(msg Message) bool //Queue push 멤버함수
16
-	pop(wait bool) (Message, error)	//Queue pop 멤버함수 (wait -> busy waiting 여부 결정)
13
+	queue_init() error              //Queue 초기화 멤버함수
14
+	push(msg Message) bool          //Queue push 멤버함수
15
+	pop(wait bool) (Message, error) //Queue pop 멤버함수 (wait -> busy waiting 여부 결정)
17 16
 }
18 17
 
19 18
 //Message Queue를 초기화 해주는 함수
20 19
 func (mq *MsgQueue) queue_init() error {
20
+	logger := NewMyLogger()
21
+	logger.Sync()
22
+
21 23
 	if mq.queue != nil && len(mq.queue) != 0 {
22 24
 		return errors.New("Queue Hadlerer Error: Already initialized.")
23 25
 	} else if mq.queue == nil {
24 26
 		mq.queue = make(chan MsgUnit, 1000)
25 27
 		//log.Println("queue is initialized.")
26
-		fmt.Println("queue is initialized.")
28
+		logger.Debug("queue is initialized")
27 29
 		return nil
28 30
 	} else {
29 31
 		close(mq.queue)

+ 6
- 3
src/broker/modules/secure.go Bestand weergeven

@@ -2,7 +2,6 @@ package modules
2 2
 
3 3
 import (
4 4
 	"fmt"
5
-	"log"
6 5
 	"strconv"
7 6
 )
8 7
 
@@ -13,8 +12,10 @@ type Security struct {
13 12
 
14 13
 //Security 생성자
15 14
 func NewSecurity() *Security {
15
+	logger := NewMyLogger()
16
+	defer logger.Sync()
16 17
 	security := &Security{map[string]string{}}
17
-	fmt.Println("security setting complete.")
18
+	defer logger.Debug("security setting complete.")
18 19
 	return security
19 20
 }
20 21
 
@@ -86,12 +87,14 @@ func (sc Security) ReEncPubMsg(fromPubMsg PublishMsg, nodeName string) PublishMs
86 87
 
87 88
 //Key제거 함수
88 89
 func (sc *Security) RemoveSecureKey(nodeName string) bool {
90
+	logger := NewMyLogger()
91
+	logger.Sync()
89 92
 	//삭제 전 존재여부 확인
90 93
 	_, exists := sc.KeyMap[nodeName]
91 94
 
92 95
 	if exists {
93 96
 		delete(sc.KeyMap, nodeName)
94
-		log.Println("[" + nodeName + "] : delete Key successful")
97
+		logger.Debug("[" + nodeName + "] : delete Key successful")
95 98
 		return true
96 99
 	} else {
97 100
 		return false

Laden…
Annuleren
Opslaan