1 package org.bitrepository.protocol.messagebus.logger;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import org.bitrepository.bitrepositorymessages.Message;
26 import org.bitrepository.bitrepositorymessages.MessageResponse;
27 import org.bitrepository.protocol.utils.MessageUtils;
28 import org.slf4j.Logger;
29 import org.slf4j.LoggerFactory;
30
31
32
33
34
35 public class DefaultMessagingLogger implements MessageLogger {
36 protected final Logger log = LoggerFactory.getLogger(getClass());
37
38 @Override
39 public void logMessageSent(Message message) {
40 StringBuilder messageSB = new StringBuilder("Sent ");
41 if (shouldLogFullMessage(message)) {
42 logFullMessage(appendFullRepresentation(messageSB, message).toString());
43 } else {
44 appendMessageIDString(messageSB, message);
45 messageSB.append(" collectionID " + message.getCollectionID() + ", ");
46 if (message.isSetTo()) {
47 messageSB.append(" to " + message.getTo() + ", ");
48 }
49 messageSB.append(" destination " + message.getDestination() + ": ");
50 appendShortRepresentation(messageSB, message);
51 logShortMessage(messageSB.toString());
52 }
53 }
54
55 @Override
56 public void logMessageReceived(Message message) {
57 StringBuilder messageSB = new StringBuilder("Received ");
58 if (shouldLogFullMessage(message)) {
59 logFullMessage(appendFullRepresentation(messageSB, message).toString());
60 } else {
61 appendMessageIDString(messageSB, message);
62 messageSB.append(" from " + message.getFrom() + ": ");
63 appendShortRepresentation(messageSB, message);
64 logShortMessage(messageSB.toString());
65 }
66 }
67
68
69
70
71
72 protected boolean shouldLogFullMessage(Message message) {
73 return log.isTraceEnabled();
74 }
75
76
77
78
79
80
81 protected void logFullMessage(String message) {
82 log.trace(message);
83 }
84 private StringBuilder appendFullRepresentation(StringBuilder messageSB, Message message) {
85 messageSB.append(message.toString());
86 return messageSB;
87 }
88
89
90
91
92
93
94 protected void logShortMessage(String message) {
95 log.info(message);
96 }
97 private StringBuilder appendShortRepresentation(StringBuilder messageSB, Message message) {
98 if (message instanceof MessageResponse) {
99 appendResponseInfo(messageSB, (MessageResponse) message);
100 }
101 appendCustomInfo(messageSB, message);
102 return messageSB;
103 }
104
105 private StringBuilder appendMessageIDString(StringBuilder messageSB, Message message) {
106 messageSB.append(message.getClass().getSimpleName());
107 messageSB.append("(" + MessageUtils.getShortConversationID(message.getCorrelationID()) + ")");
108 return messageSB;
109 }
110
111 private StringBuilder appendResponseInfo(StringBuilder messageSB, MessageResponse response) {
112 messageSB.append(response.getResponseInfo().getResponseCode() + "(" +
113 response.getResponseInfo().getResponseText() + ")");
114 return messageSB;
115 }
116
117 protected StringBuilder appendCustomInfo(StringBuilder messageSB, Message message) {
118 return messageSB;
119 }
120 }