From 31ec9baa95d9d1fd4534ca27181423bd1e872504 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Mon, 11 Nov 2024 23:41:22 -0600 Subject: [PATCH] Include kernel logs when downloading logs (#1551) Instead of writing the kernel logs to the photonvision logs, this will download them in the same zip file as the photonvision logs. Only includes dmesg logs from the current boot, which is fine since we should capture most of them in our logs now. --- .../common/logging/KernelLogLogger.java | 14 -------------- .../org/photonvision/server/RequestHandler.java | 5 ++++- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/photon-core/src/main/java/org/photonvision/common/logging/KernelLogLogger.java b/photon-core/src/main/java/org/photonvision/common/logging/KernelLogLogger.java index d97ca6f46..d0a127705 100644 --- a/photon-core/src/main/java/org/photonvision/common/logging/KernelLogLogger.java +++ b/photon-core/src/main/java/org/photonvision/common/logging/KernelLogLogger.java @@ -18,9 +18,6 @@ package org.photonvision.common.logging; import edu.wpi.first.util.RuntimeDetector; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; import org.photonvision.common.util.TimedTaskManager; import org.photonvision.jni.QueuedFileLogger; @@ -43,17 +40,6 @@ public class KernelLogLogger { public KernelLogLogger() { if (RuntimeDetector.isLinux()) { - logger.info("Listening for klogs on /var/log/dmesg ! Boot logs:"); - - try { - var bootlog = Files.readAllLines(Path.of("/var/log/dmesg")); - for (var line : bootlog) { - logger.log(line, LogLevel.DEBUG); - } - } catch (IOException e) { - logger.error("Couldn't read /var/log/dmesg - not printing boot logs"); - } - listener = new QueuedFileLogger("/var/log/kern.log"); } else { System.out.println("NOT for klogs"); diff --git a/photon-server/src/main/java/org/photonvision/server/RequestHandler.java b/photon-server/src/main/java/org/photonvision/server/RequestHandler.java index 1b17c68eb..713d22435 100644 --- a/photon-server/src/main/java/org/photonvision/server/RequestHandler.java +++ b/photon-server/src/main/java/org/photonvision/server/RequestHandler.java @@ -424,10 +424,13 @@ public class RequestHandler { ShellExec shell = new ShellExec(); var tempPath = Files.createTempFile("photonvision-journalctl", ".txt"); var tempPath2 = Files.createTempFile("photonvision-kernelogs", ".txt"); + // In the command below: + // dmesg = output all kernel logs since current boot + // cat /var/log/kern.log = output all kernal logs since first boot shell.executeBashCommand( "journalctl -u photonvision.service > " + tempPath.toAbsolutePath() - + " && journalctl -k > " + + " && dmesg > " + tempPath2.toAbsolutePath()); while (!shell.isOutputCompleted()) {