Skip to content

Commit 9f96a28

Browse files
adityasharatfacebook-github-bot
authored andcommitted
Adds debug events log level
Summary: Adds debug events log level Reviewed By: fabiocarballo Differential Revision: D44744902 fbshipit-source-id: acfa70ba75350fdb18d49a7593a5b4a9632e394f
1 parent 020ddf3 commit 9f96a28

File tree

4 files changed

+52
-3
lines changed

4 files changed

+52
-3
lines changed

litho-rendercore/src/main/java/com/facebook/rendercore/LogLevel.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
package com.facebook.rendercore;
1818

1919
public enum LogLevel {
20+
VERBOSE,
21+
DEBUG,
2022
WARNING,
2123
ERROR,
22-
FATAL
24+
FATAL,
2325
}

litho-rendercore/src/main/java/com/facebook/rendercore/debug/DebugEventLogger.kt

+8-1
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,17 @@
1717
package com.facebook.rendercore.debug
1818

1919
import android.util.Log
20+
import com.facebook.rendercore.LogLevel
2021

2122
/** This debug event subscriber listens to all events and prints them to logcat */
2223
class DebugEventLogger : DebugEventSubscriber(DebugEvent.All) {
2324
override fun onEvent(event: DebugEvent) {
24-
Log.d("rc-debug-events", event.toString())
25+
when (event.logLevel) {
26+
LogLevel.VERBOSE -> Log.v("rc-debug-events", event.toString())
27+
LogLevel.DEBUG -> Log.d("rc-debug-events", event.toString())
28+
LogLevel.WARNING -> Log.w("rc-debug-events", event.toString())
29+
LogLevel.ERROR -> Log.e("rc-debug-events", event.toString())
30+
LogLevel.FATAL -> Log.e("rc-debug-events", event.toString())
31+
}
2532
}
2633
}

litho-rendercore/src/main/java/com/facebook/rendercore/debug/DebugEvents.kt

+35-1
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,17 @@
1616

1717
package com.facebook.rendercore.debug
1818

19+
import com.facebook.rendercore.LogLevel
1920
import java.util.concurrent.TimeUnit
2021
import java.util.concurrent.atomic.AtomicBoolean
22+
import java.util.concurrent.atomic.AtomicReference
2123

2224
/** Base class of all debug events */
2325
sealed class DebugEvent(
2426
val type: String,
2527
val renderStateId: String,
2628
val threadName: String = Thread.currentThread().name,
29+
val logLevel: LogLevel = LogLevel.DEBUG,
2730
private val attributes: Map<String, Any?> = emptyMap()
2831
) {
2932

@@ -85,12 +88,14 @@ class DebugMarkerEvent(
8588
type: String,
8689
renderStateId: String,
8790
threadName: String = Thread.currentThread().name,
91+
logLevel: LogLevel = LogLevel.DEBUG,
8892
attributes: Map<String, Any?> = emptyMap()
8993
) :
9094
DebugEvent(
9195
type = type,
9296
renderStateId = renderStateId,
9397
threadName = threadName,
98+
logLevel = logLevel,
9499
attributes =
95100
buildMap {
96101
put(DebugEventAttribute.timestamp, timestamp)
@@ -104,12 +109,14 @@ class DebugProcessEvent(
104109
type: String,
105110
renderStateId: String,
106111
threadName: String = Thread.currentThread().name,
112+
logLevel: LogLevel = LogLevel.DEBUG,
107113
attributes: Map<String, Any?> = emptyMap()
108114
) :
109115
DebugEvent(
110116
type = type,
111117
renderStateId = renderStateId,
112118
threadName = threadName,
119+
logLevel = logLevel,
113120
attributes =
114121
buildMap {
115122
put(DebugEventAttribute.timestamp, timestamp)
@@ -132,6 +139,15 @@ object DebugEventDispatcher {
132139
_enabled.set(value)
133140
}
134141

142+
private val minLogLevelRef = AtomicReference(LogLevel.DEBUG)
143+
144+
@JvmStatic
145+
var minLogLevel: LogLevel
146+
get() = minLogLevelRef.get()
147+
set(value) {
148+
minLogLevelRef.set(value)
149+
}
150+
135151
private val _mutableSubscribers: MutableSet<DebugEventSubscriber> = mutableSetOf()
136152

137153
val subscribers: Set<DebugEventSubscriber>
@@ -142,9 +158,10 @@ object DebugEventDispatcher {
142158
type: String,
143159
renderStateId: String,
144160
timestamp: Long = System.currentTimeMillis(), // for calender time
161+
logLevel: LogLevel = LogLevel.DEBUG,
145162
attributesFiller: AttributesFiller = AttributesFiller {},
146163
) {
147-
if (enabled) {
164+
if (enabled && logLevel >= this.minLogLevel) {
148165
val attributes = LinkedHashMap<String, Any?>()
149166
attributesFiller.fillAttributes(attributes)
150167

@@ -154,6 +171,7 @@ object DebugEventDispatcher {
154171
renderStateId = renderStateId,
155172
attributes = attributes,
156173
timestamp = timestamp,
174+
logLevel = logLevel,
157175
)
158176
subscribers.forEach { subscriber ->
159177
if (subscriber.events.contains(type) || subscriber.events.contains(DebugEvent.All)) {
@@ -177,6 +195,22 @@ object DebugEventDispatcher {
177195
)
178196
}
179197

198+
@JvmStatic
199+
inline fun dispatch(
200+
type: String,
201+
renderStateId: String,
202+
logLevel: LogLevel = LogLevel.DEBUG,
203+
attributesFiller: AttributesFiller = AttributesFiller {},
204+
) {
205+
dispatch(
206+
type = type,
207+
renderStateId = renderStateId,
208+
timestamp = System.currentTimeMillis(), // for calender time
209+
logLevel = logLevel,
210+
attributesFiller = attributesFiller,
211+
)
212+
}
213+
180214
@JvmStatic
181215
inline fun <T> trace(
182216
type: String,

sample/src/main/java/com/facebook/samples/litho/kotlin/logging/SampleComponentsReporter.kt

+6
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ class SampleComponentsReporter : ErrorReporterDelegate {
3232
metadata: Map<String, Any>?
3333
) {
3434
when (level) {
35+
LogLevel.VERBOSE -> {
36+
Log.v(tag, message)
37+
}
38+
LogLevel.DEBUG -> {
39+
Log.d(tag, message)
40+
}
3541
LogLevel.WARNING -> {
3642
Log.w(tag, message)
3743
}

0 commit comments

Comments
 (0)