Skip to content

Commit f514a96

Browse files
authored
Removal of Segment Log components. (#144)
Remove SegmentLog and replace with simpler implementation.
1 parent 68cebe6 commit f514a96

File tree

16 files changed

+321
-920
lines changed

16 files changed

+321
-920
lines changed

android/src/main/java/com/segment/analytics/kotlin/android/AndroidAnalytics.kt

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ public fun Analytics(
6666
private fun Analytics.startup() {
6767
add(AndroidContextPlugin())
6868
add(AndroidLifecyclePlugin())
69-
add(AndroidLogTarget(), LoggingType.log)
70-
remove(targetType = ConsoleTarget::class)
69+
Analytics.setLogger(AndroidLogger())
7170
}
7271

7372
/**
@@ -84,32 +83,19 @@ fun Analytics.openUrl(referrer: String?, intent: Intent?) {
8483
DeepLinkUtils(this).trackDeepLinkFrom(referrer, intent)
8584
}
8685

87-
class AndroidLogTarget: LogTarget {
86+
class AndroidLogger: Logger {
8887
override fun parseLog(log: LogMessage) {
89-
var metadata = ""
90-
val function = log.function
91-
val line = log.line
92-
if (function != null && line != null) {
93-
metadata = " - $function:$line"
94-
}
95-
96-
var eventString = ""
97-
log.event.let {
98-
eventString = ", event=$it"
99-
}
10088

10189
when (log.kind) {
102-
LogFilterKind.ERROR -> {
103-
Log.e("AndroidLog", "message=${log.message}$eventString")
90+
LogKind.ERROR -> {
91+
Log.e("AndroidLog", "message=${log.message}")
10492
}
105-
LogFilterKind.WARNING -> {
106-
Log.w("AndroidLog", "message=${log.message}$eventString")
93+
LogKind.WARNING -> {
94+
Log.w("AndroidLog", "message=${log.message}")
10795
}
108-
LogFilterKind.DEBUG -> {
109-
Log.d("AndroidLog", "message=${log.message}$eventString")
96+
LogKind.DEBUG -> {
97+
Log.d("AndroidLog", "message=${log.message}")
11098
}
11199
}
112100
}
113-
114-
override fun flush() { }
115101
}

core/src/main/java/com/segment/analytics/kotlin/core/Analytics.kt

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ import com.segment.analytics.kotlin.core.platform.plugins.ContextPlugin
88
import com.segment.analytics.kotlin.core.platform.plugins.SegmentDestination
99
import com.segment.analytics.kotlin.core.platform.plugins.StartupQueue
1010
import com.segment.analytics.kotlin.core.platform.plugins.UserInfoPlugin
11-
import com.segment.analytics.kotlin.core.platform.plugins.logger.SegmentLog
11+
import com.segment.analytics.kotlin.core.platform.plugins.logger.ConsoleLogger
12+
import com.segment.analytics.kotlin.core.platform.plugins.logger.Logger
1213
import com.segment.analytics.kotlin.core.platform.plugins.logger.log
1314
import kotlinx.coroutines.*
1415
import kotlinx.serialization.DeserializationStrategy
@@ -58,10 +59,13 @@ open class Analytics protected constructor(
5859

5960
companion object {
6061
var debugLogsEnabled: Boolean = false
61-
set(value) {
62-
SegmentLog.loggingEnabled = value
63-
field = value
64-
}
62+
63+
// A Static Log Target that can be used from anywhere without an analytics reference.
64+
internal var logger: Logger = ConsoleLogger()
65+
66+
fun setLogger(logger: Logger) {
67+
Analytics.logger = logger
68+
}
6569

6670
/**
6771
* Retrieve the version of this library in use.
@@ -96,7 +100,6 @@ open class Analytics protected constructor(
96100
// Initiates the initial call to settings and adds default system plugins
97101
internal fun build() {
98102
// because startup queue doesn't depend on a state, we can add it first
99-
add(SegmentLog())
100103
add(StartupQueue())
101104
add(ContextPlugin())
102105
add(UserInfoPlugin())
@@ -470,7 +473,6 @@ open class Analytics protected constructor(
470473
}
471474

472475
// Platform specific APIs
473-
474476
/**
475477
* Register a plugin to the analytics timeline
476478
* @param plugin [Plugin] to be added

core/src/main/java/com/segment/analytics/kotlin/core/Settings.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.segment.analytics.kotlin.core
22

33
import com.segment.analytics.kotlin.core.platform.DestinationPlugin
44
import com.segment.analytics.kotlin.core.platform.Plugin
5-
import com.segment.analytics.kotlin.core.platform.plugins.logger.LogFilterKind
5+
import com.segment.analytics.kotlin.core.platform.plugins.logger.LogKind
66
import com.segment.analytics.kotlin.core.platform.plugins.logger.log
77
import com.segment.analytics.kotlin.core.platform.plugins.logger.segmentLog
88
import com.segment.analytics.kotlin.core.utilities.LenientJson
@@ -114,7 +114,7 @@ internal fun Analytics.fetchSettings(
114114
} catch (ex: Exception) {
115115
Analytics.segmentLog(
116116
"${ex.message}: failed to fetch settings",
117-
kind = LogFilterKind.ERROR
117+
kind = LogKind.ERROR
118118
)
119119
null
120120
}

core/src/main/java/com/segment/analytics/kotlin/core/platform/EventPipeline.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.segment.analytics.kotlin.core.platform
22

33
import com.segment.analytics.kotlin.core.*
4-
import com.segment.analytics.kotlin.core.platform.plugins.logger.LogFilterKind
4+
import com.segment.analytics.kotlin.core.platform.plugins.logger.LogKind
55
import com.segment.analytics.kotlin.core.platform.plugins.logger.log
66
import com.segment.analytics.kotlin.core.platform.plugins.logger.segmentLog
77
import com.segment.analytics.kotlin.core.platform.policies.FlushPolicy
@@ -100,7 +100,7 @@ internal class EventPipeline(
100100
flushPolicies.forEach { flushPolicy -> flushPolicy.updateState(event) }
101101
}
102102
catch (e : Exception) {
103-
Analytics.segmentLog("Error adding payload: $event", kind = LogFilterKind.ERROR)
103+
Analytics.segmentLog("Error adding payload: $event", kind = LogKind.ERROR)
104104
}
105105

106106
// if flush condition met, generate paths
@@ -168,13 +168,13 @@ internal class EventPipeline(
168168
// Simply log and proceed to remove the rejected payloads from the queue.
169169
Analytics.segmentLog(
170170
message = "Payloads were rejected by server. Marked for removal.",
171-
kind = LogFilterKind.ERROR
171+
kind = LogKind.ERROR
172172
)
173173
shouldCleanup = true
174174
} else {
175175
Analytics.segmentLog(
176176
message = "Error while uploading payloads",
177-
kind = LogFilterKind.ERROR
177+
kind = LogKind.ERROR
178178
)
179179
}
180180
}
@@ -184,7 +184,7 @@ internal class EventPipeline(
184184
| Error uploading events from batch file
185185
| fileUrl="${file.path}"
186186
| msg=${e.message}
187-
""".trimMargin(), kind = LogFilterKind.ERROR
187+
""".trimMargin(), kind = LogKind.ERROR
188188
)
189189
e.printStackTrace()
190190
}

core/src/main/java/com/segment/analytics/kotlin/core/platform/Mediator.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.segment.analytics.kotlin.core.platform
22

33
import com.segment.analytics.kotlin.core.Analytics
44
import com.segment.analytics.kotlin.core.BaseEvent
5-
import com.segment.analytics.kotlin.core.platform.plugins.logger.LogFilterKind
5+
import com.segment.analytics.kotlin.core.platform.plugins.logger.LogKind
66
import com.segment.analytics.kotlin.core.platform.plugins.logger.segmentLog
77
import java.util.concurrent.CopyOnWriteArrayList
88
import kotlin.reflect.KClass
@@ -40,8 +40,8 @@ internal class Mediator(internal var plugins: CopyOnWriteArrayList<Plugin> = Cop
4040
}
4141
}
4242
} catch (t: Throwable) {
43-
Analytics.segmentLog("Caught Exception in plugin: $t", kind = LogFilterKind.ERROR)
44-
Analytics.segmentLog("Skipping plugin due to Exception: $plugin", kind = LogFilterKind.WARNING)
43+
Analytics.segmentLog("Caught Exception in plugin: $t", kind = LogKind.ERROR)
44+
Analytics.segmentLog("Skipping plugin due to Exception: $plugin", kind = LogKind.WARNING)
4545
}
4646
}
4747
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.segment.analytics.kotlin.core.platform.plugins.logger
2+
3+
class ConsoleLogger: Logger {
4+
override fun parseLog(log: LogMessage) {
5+
println("[Segment ${log.kind.toString()} ${log.message}")
6+
}
7+
8+
}

core/src/main/java/com/segment/analytics/kotlin/core/platform/plugins/logger/ConsoleTarget.kt

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)