3
3
import com .exceptionless .exceptionlessclient .exceptions .ClientException ;
4
4
import com .exceptionless .exceptionlessclient .lastreferenceidmanager .DefaultLastReferenceIdManager ;
5
5
import com .exceptionless .exceptionlessclient .lastreferenceidmanager .LastReferenceIdManagerIF ;
6
- import com .exceptionless .exceptionlessclient .logging .LogIF ;
7
- import com .exceptionless .exceptionlessclient .logging .ConsoleLog ;
6
+ import com .exceptionless .exceptionlessclient .logging .LogCapturerAppender ;
7
+ import com .exceptionless .exceptionlessclient .logging .LogCapturerIF ;
8
+ import com .exceptionless .exceptionlessclient .logging .NullLogCapturer ;
8
9
import com .exceptionless .exceptionlessclient .models .EventPluginContext ;
9
10
import com .exceptionless .exceptionlessclient .models .UserInfo ;
10
11
import com .exceptionless .exceptionlessclient .models .enums .EventPropertyKey ;
22
23
import com .exceptionless .exceptionlessclient .submission .SubmissionClientIF ;
23
24
import lombok .Builder ;
24
25
import lombok .Getter ;
26
+ import org .slf4j .Logger ;
27
+ import org .slf4j .LoggerFactory ;
25
28
26
29
import java .util .*;
27
30
import java .util .function .BiConsumer ;
28
31
import java .util .function .Consumer ;
29
32
30
33
public class ConfigurationManager {
34
+ private static final Logger LOG = LoggerFactory .getLogger (ConfigurationManager .class );
35
+
31
36
@ Getter private final EnvironmentInfoCollectorIF environmentInfoCollector ;
32
37
@ Getter private final ErrorParserIF errorParser ;
33
38
@ Getter private final LastReferenceIdManagerIF lastReferenceIdManager ;
34
- @ Getter private final LogIF log ;
35
39
@ Getter private final ModuleCollectorIF moduleCollector ;
36
40
@ Getter private final RequestInfoCollectorIF requestInfoCollector ;
37
41
@ Getter private final SubmissionClientIF submissionClient ;
@@ -44,15 +48,15 @@ public class ConfigurationManager {
44
48
private final Set <String > userAgentBotPatterns ;
45
49
@ Getter private final PrivateInformationInclusions privateInformationInclusions ;
46
50
private final Set <String > dataExclusions ;
47
- private PluginManager pluginManager ;
51
+ private final PluginManager pluginManager ;
48
52
@ Getter private final StorageProviderIF storageProvider ;
49
53
50
54
@ Builder
51
55
public ConfigurationManager (
52
56
EnvironmentInfoCollectorIF environmentInfoCollector ,
53
57
ErrorParserIF errorParser ,
54
58
LastReferenceIdManagerIF lastReferenceIdManager ,
55
- LogIF log ,
59
+ LogCapturerIF logCatpurer ,
56
60
ModuleCollectorIF moduleCollector ,
57
61
RequestInfoCollectorIF requestInfoCollector ,
58
62
SubmissionClientIF submissionClient ,
@@ -62,10 +66,9 @@ public ConfigurationManager(
62
66
Configuration configuration ,
63
67
Integer maxQueueItems ,
64
68
Integer processingIntervalInSecs ) {
65
- this .log = log == null ? ConsoleLog .builder ().build () : log ;
66
69
this .environmentInfoCollector =
67
70
environmentInfoCollector == null
68
- ? DefaultEnvironmentInfoCollector .builder ().log ( this . log ). build ()
71
+ ? DefaultEnvironmentInfoCollector .builder ().build ()
69
72
: environmentInfoCollector ;
70
73
this .errorParser = errorParser == null ? DefaultErrorParser .builder ().build () : errorParser ;
71
74
this .lastReferenceIdManager =
@@ -76,21 +79,20 @@ public ConfigurationManager(
76
79
moduleCollector == null ? DefaultModuleCollector .builder ().build () : moduleCollector ;
77
80
this .requestInfoCollector =
78
81
requestInfoCollector == null
79
- ? DefaultRequestInfoCollector .builder ().log ( this . log ). build ()
82
+ ? DefaultRequestInfoCollector .builder ().build ()
80
83
: requestInfoCollector ;
81
84
this .storageProvider =
82
85
storageProvider == null
83
86
? InMemoryStorageProvider .builder ().maxQueueItems (maxQueueItems ).build ()
84
87
: storageProvider ;
85
88
this .configuration =
86
- configuration == null ? Configuration .defaultConfiguration () : configuration ;
89
+ configuration == null ? Configuration .defaultConfiguration () : configuration ;
87
90
this .settingsManager =
88
91
SettingsManager .builder ()
89
92
.settingsClient (
90
93
settingsClient == null
91
94
? DefaultSettingsClient .builder ().configuration (this .configuration ).build ()
92
95
: settingsClient )
93
- .log (this .log )
94
96
.storageProvider (this .storageProvider )
95
97
.build ();
96
98
this .userAgentBotPatterns = new HashSet <>();
@@ -99,28 +101,26 @@ public ConfigurationManager(
99
101
? DefaultSubmissionClient .builder ()
100
102
.settingsManager (this .settingsManager )
101
103
.configuration (this .configuration )
102
- .log (this .log )
103
104
.build ()
104
105
: submissionClient ;
105
106
this .queue =
106
107
queue == null
107
108
? DefaultEventQueue .builder ()
108
109
.configuration (this .configuration )
109
- .log (this .log )
110
110
.processingIntervalInSecs (processingIntervalInSecs )
111
111
.storageProvider (this .storageProvider )
112
112
.submissionClient (this .submissionClient )
113
113
.build ()
114
114
: queue ;
115
- this .pluginManager = PluginManager .builder ().log ( this . log ). build ();
115
+ this .pluginManager = PluginManager .builder ().build ();
116
116
this .defaultData = new HashMap <>();
117
117
this .defaultTags = new HashSet <>();
118
118
this .onChangedHandlers = new ArrayList <>();
119
119
this .dataExclusions = new HashSet <>();
120
120
this .privateInformationInclusions = PrivateInformationInclusions .builder ().build ();
121
- this .pluginManager = PluginManager .builder ().log (this .log ).build ();
122
121
checkApiKeyIsValid ();
123
122
addPropertyChangeListeners ();
123
+ addLogCapturer (logCatpurer );
124
124
}
125
125
126
126
private void addPropertyChangeListeners () {
@@ -138,6 +138,18 @@ private void checkApiKeyIsValid() {
138
138
String .format ("Apikey is not valid: [%s]" , this .configuration .getApiKey ()));
139
139
}
140
140
141
+ private void addLogCapturer (LogCapturerIF logCatpurer ) {
142
+ logCatpurer = logCatpurer == null ? NullLogCapturer .builder ().build () : logCatpurer ;
143
+
144
+ ch .qos .logback .classic .Logger logBackRootLogger =
145
+ (ch .qos .logback .classic .Logger ) LoggerFactory .getLogger (Logger .ROOT_LOGGER_NAME );
146
+ logBackRootLogger .addAppender (LogCapturerAppender .builder ().logCapturer (logCatpurer ).build ());
147
+ }
148
+
149
+ public void addDefaultTags (String ... tags ) {
150
+ defaultTags .addAll (Arrays .asList (tags ));
151
+ }
152
+
141
153
public void addDataExclusions (String ... exclusions ) {
142
154
dataExclusions .addAll (Arrays .asList (exclusions ));
143
155
}
@@ -160,7 +172,7 @@ public Set<String> getUserAgentBotPatterns() {
160
172
}
161
173
162
174
public void submitSessionHeartbeat (String sessionOrUserId ) {
163
- log .info (String .format ("Submitting session heartbeat: %s" , sessionOrUserId ));
175
+ LOG .info (String .format ("Submitting session heartbeat: %s" , sessionOrUserId ));
164
176
submissionClient .sendHeartBeat (sessionOrUserId , false );
165
177
}
166
178
@@ -216,12 +228,12 @@ public void setUserIdentity(UserInfo userInfo) {
216
228
this .defaultData .put (EventPropertyKey .USER .value (), userInfo );
217
229
}
218
230
219
- public void useSession () {
231
+ public void useSessions () {
220
232
useSessions (30000 );
221
233
}
222
234
223
- public void useSessions (int heartbeatInterval ) {
224
- addPlugin (HeartbeatPlugin .builder ().heartbeatInterval ( heartbeatInterval ).build ());
235
+ public void useSessions (int heartbeatIntervalInSecs ) {
236
+ addPlugin (HeartbeatPlugin .builder ().heartbeatIntervalInSecs ( heartbeatIntervalInSecs ).build ());
225
237
}
226
238
227
239
public void onChanged (Consumer <ConfigurationManager > onChangedHandler ) {
@@ -233,7 +245,7 @@ private void changed() {
233
245
try {
234
246
onChangedHandler .accept (this );
235
247
} catch (Exception e ) {
236
- log .error (String .format ("Error calling on changed handler: %s" , e .getMessage ()), e );
248
+ LOG .error (String .format ("Error calling on changed handler: %s" , e .getMessage ()), e );
237
249
}
238
250
}
239
251
}
0 commit comments