You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Audit existing log statements and remove or standardize unnecessary ones #741
Following the discussion in [#684](#684) and [#426](#426), this issue proposes an audit of existing logging statements in Scribe-Android to identify which are useful for development and which can be removed or improved.
Proposed scope
List existing Log.d, Log.e, Log.i, and Log.w calls, including their file paths and tags.
Classify each statement as:
Keep: Useful for debugging or development.
Remove: Unnecessary, redundant, or noisy.
Fix: Incorrect log level, inconsistent tag, or potentially sensitive information.
Share the audit list in this issue for feedback before making code changes.
Remove unnecessary log statements and standardize the remaining ones using a consistent TAG constant, following project conventions.
Contribution
I'd be happy to work on this. I'll share the audit list here first for feedback before opening a PR. 😊...”
Thanks @andrewtavis! I've finished the audit. It covers 71 log call sites in app/ (the Log.kt wrapper methods are excluded since they only delegate to android.util.Log).
Priority: possible privacy issue
NativeSuggestionEngine.kt L141 logs $prefix and L176 logs $lastWord, which is text the user is typing. I'd propose removing the user text from these messages.
ConjugateViewModel.kt L143/145/150 log $alias, which looks like the user's search term. I'd like to double check this one.
Summary
Verdict
Count
Notes
REMOVE
9
8 println in tests, 1 debug log in KeyHandler.kt
FIX
42
2 privacy issues, string-literal tags instead of TAG constants, Log.e/w calls that log only e.message (stack trace lost), 2 println in build.gradle.kts
KEEP
20
error and warning paths in DatabaseFileManager, NativeSuggestionEngine, BinaryDictionary, JniUtils
Questions
Should I leave the vendored code (BinaryDictionary.java, JniUtils.java, and the C++ AKLOGE/AKLOGI macros) untouched?
Is it OK to split this into two PRs: (a) privacy fixes + removals, (b) TAG / throwable standardization? I'd start with (a).
CCing @angrezichatterbox, @Roniscend and @prince-0408 for opinions on the above :) I personally am fine with two PRs for this. As #684 has been merged, feel free to include anything that's left to be done in this PR 😊
Thanks @andrewtavis! I’ll start with PR (a) now (privacy fixes and removals) and wait for input from @angrezichatterbox and @Roniscend before touching the vendored code or opening PR (b). 😊
Activity
akkicodes-dev commentedon Oct 25, 2026
Hi @andrewtavis, I’ve created this issue as discussed in #684. Could you assign it to me? Thanks!
andrewtavis commentedon Oct 25, 2026
Thanks so much for the issue, @akkicodes-dev! Please let us know if there's anything you need while looking into this 😊
akkicodes-dev commentedon Oct 25, 2026
Thanks @andrewtavis! I've finished the audit. It covers 71 log call sites in
app/(theLog.ktwrapper methods are excluded since they only delegate toandroid.util.Log).Priority: possible privacy issue
NativeSuggestionEngine.ktL141 logs$prefixand L176 logs$lastWord, which is text the user is typing. I'd propose removing the user text from these messages.ConjugateViewModel.ktL143/145/150 log$alias, which looks like the user's search term. I'd like to double check this one.Summary
printlnin tests, 1 debug log inKeyHandler.ktTAGconstants,Log.e/wcalls that log onlye.message(stack trace lost), 2printlninbuild.gradle.ktsDatabaseFileManager,NativeSuggestionEngine,BinaryDictionary,JniUtilsQuestions
BinaryDictionary.java,JniUtils.java, and the C++AKLOGE/AKLOGImacros) untouched?TAG/ throwable standardization? I'd start with (a).KeyboardBase.kttags overlap with refactor: clean up invalid log tags (#426) #684. Should I leave those to refactor: clean up invalid log tags (#426) #684 and skip them here?Full audit table (71 call sites, grouped by file)
REMOVE (9)
KeyHandler.ktAboutUtilTest.ktAboutUtilInstrumentedTest.ktFIX: privacy (2)
NativeSuggestionEngine.kt$prefix/$lastWord(user-typed text), remove from messageFIX: other (40)
build.gradle.ktslogger.info/logger.warninstead of stdoutGeneralKeyboardIME.ktTAGconstantConjugateDynamicDbHelper.kt"CONJUGATE_DB"; L75 also logs onlye.messageDynamicDbHelper.kt"SCRIBE_DB"; logs onlye.messageKeyboardBase.kte.messageClipboardMonitor.ktConjugateDataManager.kte.message(and share the same message)ContractDataLoader.ktGenderDataManager.ktPrepositionDataManager.ktRatingHelper.ktShareHelper.ktConjugateViewModel.kt$alias, see above)ConjugateDataDownloadViewModel.kte.messageDataDownloadViewModel.kte.messageKEEP (20)
DatabaseFileManager.ktNativeSuggestionEngine.ktBinaryDictionary.javaJniUtils.javaHappy to adjust anything based on your feedback before I open a PR. 😊
andrewtavis commentedon Oct 25, 2026
CCing @angrezichatterbox, @Roniscend and @prince-0408 for opinions on the above :) I personally am fine with two PRs for this. As #684 has been merged, feel free to include anything that's left to be done in this PR 😊
akkicodes-dev commentedon Oct 26, 2026
Thanks @andrewtavis! I’ll start with PR (a) now (privacy fixes and removals) and wait for input from @angrezichatterbox and @Roniscend before touching the vendored code or opening PR (b). 😊
andrewtavis commentedon Oct 26, 2026
Sounds good, @akkicodes-dev!