19
19
import java .util .Map ;
20
20
import java .util .logging .Formatter ;
21
21
import java .util .logging .LogRecord ;
22
+ import oracle .kubernetes .operator .helpers .DomainPresenceInfo ;
22
23
import oracle .kubernetes .operator .work .Fiber ;
24
+ import oracle .kubernetes .operator .work .Packet ;
23
25
24
26
/** Custom log formatter to format log messages in JSON format. */
25
27
public class LoggingFormatter extends Formatter {
@@ -29,6 +31,7 @@ public class LoggingFormatter extends Formatter {
29
31
private static final String TIMESTAMP = "timestamp" ;
30
32
private static final String THREAD = "thread" ;
31
33
private static final String FIBER = "fiber" ;
34
+ private static final String DOMAIN_UID = "domainUID" ;
32
35
private static final String SOURCE_CLASS = "class" ;
33
36
private static final String SOURCE_METHOD = "method" ;
34
37
private static final String TIME_IN_MILLIS = "timeInMillis" ;
@@ -109,6 +112,7 @@ public String format(LogRecord record) {
109
112
map .put (TIMESTAMP , dateString );
110
113
map .put (THREAD , thread );
111
114
map .put (FIBER , fiber != null ? fiber .toString () : "" );
115
+ map .put (DOMAIN_UID , getDomainUID (fiber ));
112
116
map .put (LOG_LEVEL , level );
113
117
map .put (SOURCE_CLASS , sourceClassName );
114
118
map .put (SOURCE_METHOD , sourceMethodName );
@@ -138,4 +142,21 @@ public String format(LogRecord record) {
138
142
}
139
143
return json + "\n " ;
140
144
}
145
+
146
+ /**
147
+ * Get the domain UID currently being used by the step executing for the Fiber.
148
+ *
149
+ * @param fiber The current Fiber
150
+ * @return the domain UID or empty string
151
+ */
152
+ private String getDomainUID (Fiber fiber ) {
153
+
154
+ Packet packet = fiber == null ? null : fiber .getPacket ();
155
+ if (packet != null ) {
156
+ DomainPresenceInfo info = packet .getSPI (DomainPresenceInfo .class );
157
+ return info == null ? "" : info .getDomainUID ();
158
+ } else {
159
+ return "" ;
160
+ }
161
+ }
141
162
}
0 commit comments