Revert "Logs from the terminal VM is accumulated"
This reverts commit a3383fc81c348513a21899e443cd456a92de5088.
Reason for revert: b/401681186
Change-Id: I576136fe8dcb580662301a09d823db714cec226c
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/Logger.kt b/android/TerminalApp/java/com/android/virtualization/terminal/Logger.kt
index 15ddcde..547f1a7 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/Logger.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/Logger.kt
@@ -30,7 +30,6 @@
import java.nio.file.Files
import java.nio.file.Path
import java.nio.file.StandardOpenOption
-import java.time.LocalDateTime
import java.util.concurrent.ExecutorService
import libcore.io.Streams
@@ -38,21 +37,14 @@
* Forwards VM's console output to a file on the Android side, and VM's log output to Android logd.
*/
internal object Logger {
- fun setup(vm: VirtualMachine, dir: Path, executor: ExecutorService) {
- val tag = vm.name
-
+ fun setup(vm: VirtualMachine, path: Path, executor: ExecutorService) {
if (vm.config.debugLevel != VirtualMachineConfig.DEBUG_LEVEL_FULL) {
- Log.i(tag, "Logs are not captured. Non-debuggable VM.")
return
}
try {
- Files.createDirectories(dir)
- deleteOldLogs(dir, 10)
- val logPath = dir.resolve(LocalDateTime.now().toString())
val console = vm.getConsoleOutput()
- val file =
- Files.newOutputStream(logPath, StandardOpenOption.SYNC, StandardOpenOption.APPEND)
+ val file = Files.newOutputStream(path, StandardOpenOption.CREATE)
executor.submit<Int?> {
console.use { console ->
LineBufferedOutputStream(file).use { fileOutput ->
@@ -62,7 +54,7 @@
}
val log = vm.getLogOutput()
- executor.submit<Unit> { log.use { writeToLogd(it, tag) } }
+ executor.submit<Unit> { log.use { writeToLogd(it, vm.name) } }
} catch (e: VirtualMachineException) {
throw RuntimeException(e)
} catch (e: IOException) {
@@ -70,32 +62,12 @@
}
}
- fun deleteOldLogs(dir: Path, numLogsToKeep: Long) {
- Files.list(dir)
- .filter { Files.isRegularFile(it) }
- .sorted(
- Comparator.comparingLong { f: Path ->
- // for some reason, type inference didn't work here!
- Files.getLastModifiedTime(f).toMillis()
- }
- .reversed()
- )
- .skip(numLogsToKeep)
- .forEach {
- try {
- Files.delete(it)
- } catch (e: IOException) {
- // don't bother
- }
- }
- }
-
@Throws(IOException::class)
- private fun writeToLogd(input: InputStream?, tag: String?) {
+ private fun writeToLogd(input: InputStream?, vmName: String?) {
val reader = BufferedReader(InputStreamReader(input))
reader
.useLines { lines -> lines.takeWhile { !Thread.interrupted() } }
- .forEach { Log.d(tag, it) }
+ .forEach { Log.d(vmName, it) }
}
private class LineBufferedOutputStream(out: OutputStream?) : BufferedOutputStream(out) {
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.kt b/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.kt
index b61cccd..4bfad62 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.kt
@@ -139,7 +139,10 @@
val displaySize = intent.getParcelableExtra(EXTRA_DISPLAY_INFO, DisplayInfo::class.java)
customImageConfigBuilder.setAudioConfig(
- AudioConfig.Builder().setUseSpeaker(true).setUseMicrophone(true).build()
+ AudioConfig.Builder()
+ .setUseSpeaker(true)
+ .setUseMicrophone(true)
+ .build()
)
if (overrideConfigIfNecessary(customImageConfigBuilder, displaySize)) {
configBuilder.setCustomImageConfig(customImageConfigBuilder.build())
@@ -167,8 +170,8 @@
resultReceiver?.send(if (success) RESULT_STOP else RESULT_ERROR, null)
stopSelf()
}
- val logDir = getFileStreamPath(virtualMachine!!.name + ".log").toPath()
- Logger.setup(virtualMachine!!, logDir, executorService!!)
+ val logPath = getFileStreamPath(virtualMachine!!.name + ".log").toPath()
+ Logger.setup(virtualMachine!!, logPath, executorService!!)
val notification =
intent.getParcelableExtra<Notification?>(EXTRA_NOTIFICATION, Notification::class.java)