From 76c2d028c9b2bebfeedf36b863ba2645a220fad1 Mon Sep 17 00:00:00 2001 From: Jeff DeCew Date: Wed, 2 Feb 2022 17:57:02 +0000 Subject: [PATCH] Don't format the LogMessage twice for systrace and logcat. Bug: 217450249 Test: run perfetto tracing Change-Id: I814524b935ab0a1f8b3c7c42c4a105152ec28858 --- .../src/com/android/systemui/log/LogBuffer.kt | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/log/LogBuffer.kt b/packages/SystemUI/src/com/android/systemui/log/LogBuffer.kt index b15807c0475c1..6d589aac2079a 100644 --- a/packages/SystemUI/src/com/android/systemui/log/LogBuffer.kt +++ b/packages/SystemUI/src/com/android/systemui/log/LogBuffer.kt @@ -176,14 +176,9 @@ class LogBuffer @JvmOverloads constructor( buffer.removeFirst() } buffer.add(message as LogMessageImpl) - if (systrace) { - val messageStr = message.printer(message) - Trace.instantForTrack(Trace.TRACE_TAG_APP, "UI Events", "$name - $messageStr") - } - if (logcatEchoTracker.isBufferLoggable(name, message.level) || - logcatEchoTracker.isTagLoggable(message.tag, message.level)) { - echo(message) - } + val includeInLogcat = logcatEchoTracker.isBufferLoggable(name, message.level) || + logcatEchoTracker.isTagLoggable(message.tag, message.level) + echo(message, toLogcat = includeInLogcat, toSystrace = systrace) } /** Converts the entire buffer to a newline-delimited string */ @@ -232,8 +227,24 @@ class LogBuffer @JvmOverloads constructor( pw.println(message.printer(message)) } - private fun echo(message: LogMessage) { - val strMessage = message.printer(message) + private fun echo(message: LogMessage, toLogcat: Boolean, toSystrace: Boolean) { + if (toLogcat || toSystrace) { + val strMessage = message.printer(message) + if (toSystrace) { + echoToSystrace(message, strMessage) + } + if (toLogcat) { + echoToLogcat(message, strMessage) + } + } + } + + private fun echoToSystrace(message: LogMessage, strMessage: String) { + Trace.instantForTrack(Trace.TRACE_TAG_APP, "UI Events", + "$name - ${message.level.shortString} ${message.tag}: $strMessage") + } + + private fun echoToLogcat(message: LogMessage, strMessage: String) { when (message.level) { LogLevel.VERBOSE -> Log.v(message.tag, strMessage) LogLevel.DEBUG -> Log.d(message.tag, strMessage)