aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/api/analytics/AnalyticsLoggingPlugin.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/api/analytics/AnalyticsLoggingPlugin.java')
-rw-r--r--src/Java/gtPlusPlus/api/analytics/AnalyticsLoggingPlugin.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/api/analytics/AnalyticsLoggingPlugin.java b/src/Java/gtPlusPlus/api/analytics/AnalyticsLoggingPlugin.java
new file mode 100644
index 0000000000..ec2537cbfd
--- /dev/null
+++ b/src/Java/gtPlusPlus/api/analytics/AnalyticsLoggingPlugin.java
@@ -0,0 +1,37 @@
+package gtPlusPlus.api.analytics;
+
+import com.segment.analytics.Analytics;
+import com.segment.analytics.Callback;
+import com.segment.analytics.Log;
+import com.segment.analytics.Plugin;
+import com.segment.analytics.messages.Message;
+
+/**
+ * A {@link Plugin} implementation that redirects client logs to standard output and logs callback
+ * events.
+ */
+public class AnalyticsLoggingPlugin implements Plugin {
+ @Override public void configure(Analytics.Builder builder) {
+ builder.log(new Log() {
+ @Override public void print(Level level, String format, Object... args) {
+ System.out.println(level + ":\t" + String.format(format, args));
+ }
+
+ @Override public void print(Level level, Throwable error, String format, Object... args) {
+ System.out.println(level + ":\t" + String.format(format, args));
+ System.out.println(error);
+ }
+ });
+
+ builder.callback(new Callback() {
+ @Override public void success(Message message) {
+ System.out.println("Uploaded " + message);
+ }
+
+ @Override public void failure(Message message, Throwable throwable) {
+ System.out.println("Could not upload " + message);
+ System.out.println(throwable);
+ }
+ });
+ }
+} \ No newline at end of file