-
Notifications
You must be signed in to change notification settings - Fork 521
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG]: ConsoleLogger overwrites local log file for each line write #5232
Comments
Suggest that this is a good potential starter issue since it should be straightforward to investigate, fix, and add tests for it. |
can i work on this issue @adhiamboperes |
Hi @kmanikanta335. Could you please share an overview of your proposed solution? |
@adhiamboperes
|
@kmanikanta335, you can put up a draft PR with these changes that you have proposed. |
Can I work on this issue as @kmanikanta335 has not posted any PR till now? |
Hi @adhiamboperes can i work on this issue? private fun logToFileInBackground(text: String) {
blockingScope.launch {
if (printWriter == null) {
printWriter = PrintWriter(FileWriter(logDirectory, true)) // Open in append mode
}
printWriter?.println(text)
printWriter?.flush()
}
}
/** Close the log file when logging is finished. */
fun closeLogFile() {
printWriter?.close()
printWriter = null
}
} |
Hi @manas-yu, I have assigned the issue to you. Please feel free to put up a PR! |
Describe the bug
ConsoleLogger
has support for logging output lines to a local log (rather than just logcat). However, it seems that this is currently configured such that each line will completely overwrite the original log file.Steps To Reproduce
adb logcat | grep org.oppia.android
).$ANDROID_HOME/platform-tools/adb pull /data/data/org.oppia.android/files/oppia_app.log ~/opensource/oppia_app.log
Expected Behavior
All lines should be kept, not just the most recent.
Screenshots/Videos
No response
What device/emulator are you using?
Pixel 6a emulator
Which Android version is your device/emulator running?
SDK 33
Which version of the Oppia Android app are you using?
0.11-dev-80a9a09723
Additional Context
From the logic in
ConsoleLogger
:oppia-android/utility/src/main/java/org/oppia/android/util/logging/ConsoleLogger.kt
Line 108 in 6006277
I suspect this is caused by the open
FileWriter
just always, by default, overwriting the file. We should, instead, open the writer in append mode & add tests to verify that this functionality now works.Also, it's probably a good idea to keep a long-lived
PrintStream
open for the log file rather than reopening it for each line (which is going to be less performant). We should overwrite the file in this case (to avoid indefinitely using more disk space for debug logs). This includes adding tests for verifying that multipleConsoleLogger
instances do overwrite the file from the previous logger.The text was updated successfully, but these errors were encountered: