Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@

package org.photonvision.common.logging;

import edu.wpi.first.cscore.CameraServerJNI;
import edu.wpi.first.networktables.PubSubOption;
import edu.wpi.first.networktables.StringPublisher;
import java.io.*;
import java.nio.file.Path;
import java.text.ParseException;
Expand All @@ -28,6 +31,7 @@
import org.photonvision.common.configuration.PathManager;
import org.photonvision.common.dataflow.DataChangeService;
import org.photonvision.common.dataflow.events.OutgoingUIEvent;
import org.photonvision.common.dataflow.networktables.NetworkTablesManager;
import org.photonvision.common.util.TimedTaskManager;

/** TODO: get rid of static {} blocks and refactor to singleton pattern */
Expand Down Expand Up @@ -127,6 +131,11 @@ public static void addFileAppender(Path logFilePath) {
currentAppenders.add(new FileLogAppender(logFilePath));
}

/** Publish log stringst to NT. This must be done AFTER loading ntcore. */
public static void addNtAppender() {
currentAppenders.add(new NTLogAppender());
}

public static void closeAllLoggers() {
currentAppenders.forEach(LogAppender::shutdown);
currentAppenders.clear();
Expand Down Expand Up @@ -317,6 +326,20 @@ public void log(String message, LogLevel level) {
}
}

private static class NTLogAppender implements LogAppender {
private StringPublisher pub =
NetworkTablesManager.getInstance()
.kRootTable
.getSubTable("log_outputs")
.getStringTopic(CameraServerJNI.getHostname())
.publish(PubSubOption.sendAll(true));

@Override
public void log(String message, LogLevel level) {
pub.accept(message);
}
}

private static class FileLogAppender implements LogAppender {
private OutputStream out;
private boolean wantsFlush;
Expand Down
2 changes: 2 additions & 0 deletions photon-server/src/main/java/org/photonvision/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,8 @@ public static void main(String[] args) {
}
logger.info("WPI JNI libraries loaded.");

Logger.addNtAppender();

try {
boolean success = PhotonTargetingJniLoader.load();

Expand Down
Loading