33import com .exceptionless .exceptionlessclient .exceptions .ClientException ;
44import com .exceptionless .exceptionlessclient .lastreferenceidmanager .DefaultLastReferenceIdManager ;
55import 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 ;
89import com .exceptionless .exceptionlessclient .models .EventPluginContext ;
910import com .exceptionless .exceptionlessclient .models .UserInfo ;
1011import com .exceptionless .exceptionlessclient .models .enums .EventPropertyKey ;
2223import com .exceptionless .exceptionlessclient .submission .SubmissionClientIF ;
2324import lombok .Builder ;
2425import lombok .Getter ;
26+ import org .slf4j .Logger ;
27+ import org .slf4j .LoggerFactory ;
2528
2629import java .util .*;
2730import java .util .function .BiConsumer ;
2831import java .util .function .Consumer ;
2932
3033public class ConfigurationManager {
34+ private static final Logger LOG = LoggerFactory .getLogger (ConfigurationManager .class );
35+
3136 @ Getter private final EnvironmentInfoCollectorIF environmentInfoCollector ;
3237 @ Getter private final ErrorParserIF errorParser ;
3338 @ Getter private final LastReferenceIdManagerIF lastReferenceIdManager ;
34- @ Getter private final LogIF log ;
3539 @ Getter private final ModuleCollectorIF moduleCollector ;
3640 @ Getter private final RequestInfoCollectorIF requestInfoCollector ;
3741 @ Getter private final SubmissionClientIF submissionClient ;
@@ -44,15 +48,15 @@ public class ConfigurationManager {
4448 private final Set <String > userAgentBotPatterns ;
4549 @ Getter private final PrivateInformationInclusions privateInformationInclusions ;
4650 private final Set <String > dataExclusions ;
47- private PluginManager pluginManager ;
51+ private final PluginManager pluginManager ;
4852 @ Getter private final StorageProviderIF storageProvider ;
4953
5054 @ Builder
5155 public ConfigurationManager (
5256 EnvironmentInfoCollectorIF environmentInfoCollector ,
5357 ErrorParserIF errorParser ,
5458 LastReferenceIdManagerIF lastReferenceIdManager ,
55- LogIF log ,
59+ LogCapturerIF logCatpurer ,
5660 ModuleCollectorIF moduleCollector ,
5761 RequestInfoCollectorIF requestInfoCollector ,
5862 SubmissionClientIF submissionClient ,
@@ -62,10 +66,9 @@ public ConfigurationManager(
6266 Configuration configuration ,
6367 Integer maxQueueItems ,
6468 Integer processingIntervalInSecs ) {
65- this .log = log == null ? ConsoleLog .builder ().build () : log ;
6669 this .environmentInfoCollector =
6770 environmentInfoCollector == null
68- ? DefaultEnvironmentInfoCollector .builder ().log ( this . log ). build ()
71+ ? DefaultEnvironmentInfoCollector .builder ().build ()
6972 : environmentInfoCollector ;
7073 this .errorParser = errorParser == null ? DefaultErrorParser .builder ().build () : errorParser ;
7174 this .lastReferenceIdManager =
@@ -76,21 +79,20 @@ public ConfigurationManager(
7679 moduleCollector == null ? DefaultModuleCollector .builder ().build () : moduleCollector ;
7780 this .requestInfoCollector =
7881 requestInfoCollector == null
79- ? DefaultRequestInfoCollector .builder ().log ( this . log ). build ()
82+ ? DefaultRequestInfoCollector .builder ().build ()
8083 : requestInfoCollector ;
8184 this .storageProvider =
8285 storageProvider == null
8386 ? InMemoryStorageProvider .builder ().maxQueueItems (maxQueueItems ).build ()
8487 : storageProvider ;
8588 this .configuration =
86- configuration == null ? Configuration .defaultConfiguration () : configuration ;
89+ configuration == null ? Configuration .defaultConfiguration () : configuration ;
8790 this .settingsManager =
8891 SettingsManager .builder ()
8992 .settingsClient (
9093 settingsClient == null
9194 ? DefaultSettingsClient .builder ().configuration (this .configuration ).build ()
9295 : settingsClient )
93- .log (this .log )
9496 .storageProvider (this .storageProvider )
9597 .build ();
9698 this .userAgentBotPatterns = new HashSet <>();
@@ -99,28 +101,26 @@ public ConfigurationManager(
99101 ? DefaultSubmissionClient .builder ()
100102 .settingsManager (this .settingsManager )
101103 .configuration (this .configuration )
102- .log (this .log )
103104 .build ()
104105 : submissionClient ;
105106 this .queue =
106107 queue == null
107108 ? DefaultEventQueue .builder ()
108109 .configuration (this .configuration )
109- .log (this .log )
110110 .processingIntervalInSecs (processingIntervalInSecs )
111111 .storageProvider (this .storageProvider )
112112 .submissionClient (this .submissionClient )
113113 .build ()
114114 : queue ;
115- this .pluginManager = PluginManager .builder ().log ( this . log ). build ();
115+ this .pluginManager = PluginManager .builder ().build ();
116116 this .defaultData = new HashMap <>();
117117 this .defaultTags = new HashSet <>();
118118 this .onChangedHandlers = new ArrayList <>();
119119 this .dataExclusions = new HashSet <>();
120120 this .privateInformationInclusions = PrivateInformationInclusions .builder ().build ();
121- this .pluginManager = PluginManager .builder ().log (this .log ).build ();
122121 checkApiKeyIsValid ();
123122 addPropertyChangeListeners ();
123+ addLogCapturer (logCatpurer );
124124 }
125125
126126 private void addPropertyChangeListeners () {
@@ -138,6 +138,18 @@ private void checkApiKeyIsValid() {
138138 String .format ("Apikey is not valid: [%s]" , this .configuration .getApiKey ()));
139139 }
140140
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+
141153 public void addDataExclusions (String ... exclusions ) {
142154 dataExclusions .addAll (Arrays .asList (exclusions ));
143155 }
@@ -160,7 +172,7 @@ public Set<String> getUserAgentBotPatterns() {
160172 }
161173
162174 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 ));
164176 submissionClient .sendHeartBeat (sessionOrUserId , false );
165177 }
166178
@@ -216,12 +228,12 @@ public void setUserIdentity(UserInfo userInfo) {
216228 this .defaultData .put (EventPropertyKey .USER .value (), userInfo );
217229 }
218230
219- public void useSession () {
231+ public void useSessions () {
220232 useSessions (30000 );
221233 }
222234
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 ());
225237 }
226238
227239 public void onChanged (Consumer <ConfigurationManager > onChangedHandler ) {
@@ -233,7 +245,7 @@ private void changed() {
233245 try {
234246 onChangedHandler .accept (this );
235247 } 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 );
237249 }
238250 }
239251 }
0 commit comments