1 package com.atlassian.logging;
2
3 import com.atlassian.workcontext.api.ImmutableWorkContextReference;
4 import com.atlassian.workcontext.api.WorkContextAvailable;
5
6 import javax.annotation.Nonnull;
7 import javax.annotation.Nullable;
8 import java.util.Optional;
9
10
11
12
13 public class WorkContextLoggingData {
14
15 private static ImmutableWorkContextReference<Optional<String>> traceId = new ImmutableWorkContextReference<>();
16 private static ImmutableWorkContextReference<Optional<String>> tenantId = new ImmutableWorkContextReference<>();
17
18
19
20
21
22
23 @Nonnull
24 public static Optional<String> getTraceId() {
25 if (WorkContextAvailable.isWorkContextAvailableStrict() && traceId.isPresent()) {
26 return traceId.get();
27 }
28 return Optional.empty();
29 }
30
31
32
33
34
35
36 public static void setTraceId(@Nullable String traceId) {
37 if (WorkContextAvailable.isWorkContextAvailableStrict()) {
38 WorkContextLoggingData.traceId.initialise(Optional.ofNullable(traceId));
39 }
40 }
41
42
43
44
45
46
47
48 @Nonnull
49 public static Optional<String> getTenantId() {
50 if (WorkContextAvailable.isWorkContextAvailableStrict() && tenantId.isPresent()) {
51 return tenantId.get();
52 }
53
54 return Optional.empty();
55 }
56
57
58
59
60
61
62
63 public static void setTenantId(@Nullable String tenantId) {
64 if (WorkContextAvailable.isWorkContextAvailableStrict()) {
65 WorkContextLoggingData.tenantId.initialise(Optional.ofNullable(tenantId));
66 }
67 }
68 }