[backend] Logging additions (#24)

* Remove de_pest log level, add instanced shouldLog

* Rename Server, VisionProcess LogGroup to WebServer, VisionModule

* Rename Level to LogLevel

* Added lambda logger methods

* Updated Platform util class, added bootup logging

* Naming fix

* Fix errors, apply spotless

* Apply spotless
This commit is contained in:
Banks T
2020-07-11 22:43:19 -04:00
committed by GitHub
parent a3ee9d8977
commit 9f1899b081
15 changed files with 148 additions and 110 deletions

View File

@@ -17,16 +17,17 @@
package org.photonvision;
import edu.wpi.cscore.CameraServerCvJNI;
import java.util.HashMap;
import java.util.List;
import org.photonvision.common.configuration.CameraConfiguration;
import org.photonvision.common.configuration.ConfigManager;
import org.photonvision.common.datatransfer.networktables.NetworkTablesManager;
import org.photonvision.common.logging.Level;
import org.photonvision.common.logging.LogGroup;
import org.photonvision.common.logging.LogLevel;
import org.photonvision.common.logging.Logger;
import org.photonvision.common.networking.NetworkManager;
import org.photonvision.common.util.TestUtils;
import org.photonvision.common.util.Platform;
import org.photonvision.server.Server;
import org.photonvision.vision.camera.USBCameraSource;
import org.photonvision.vision.pipeline.CVPipelineSettings;
@@ -36,33 +37,59 @@ import org.photonvision.vision.processes.VisionSourceManager;
public class Main {
private static final Logger logger = new Logger(Main.class, LogGroup.General);
public static final int DEFAULT_WEBPORT = 5800;
public static void main(String[] args) {
Logger.setLevel(LogGroup.Camera, Level.DE_PEST);
Logger.setLevel(LogGroup.Server, Level.DE_PEST);
Logger.setLevel(LogGroup.VisionProcess, Level.DE_PEST);
Logger.setLevel(LogGroup.Data, Level.DE_PEST);
Logger.setLevel(LogGroup.General, Level.DE_PEST);
private static String getVersion() {
return "2020.7.1"; // TODO: grab from gradle/resource somehow
}
public static void main(String[] args) {
Logger.setLevel(LogGroup.Camera, LogLevel.TRACE);
Logger.setLevel(LogGroup.WebServer, LogLevel.TRACE);
Logger.setLevel(LogGroup.VisionModule, LogLevel.TRACE);
Logger.setLevel(LogGroup.Data, LogLevel.TRACE);
Logger.setLevel(LogGroup.General, LogLevel.TRACE);
logger.info("Logging initialized!");
logger.info(
"Starting PhotonVision version "
+ getVersion()
+ " on "
+ Platform.CurrentPlatform.toString());
try {
logger.info("Loading native libraries...");
CameraServerCvJNI.forceLoad();
} catch (Exception e) {
logger.error("Failed to load native libraries!");
e.printStackTrace(); // TODO: redirect stacktrace to Logger stream somehow
}
logger.info("Native libaries loaded.");
TestUtils.loadLibraries();
ConfigManager.getInstance(); // init config manager
NetworkManager.getInstance().initialize(false); // basically empty. todo: link to ConfigManager?
NetworkTablesManager.setClientMode("127.0.0.1");
HashMap<String, CameraConfiguration> camConfigs =
ConfigManager.getInstance().getConfig().getCameraConfigurations();
logger.info("Loaded " + camConfigs.size() + " configs from disk!");
logger.info("Loaded " + camConfigs.size() + " configs from disk.");
List<VisionSource> sources = VisionSourceManager.loadAllSources(camConfigs.values());
var collectedSources = new HashMap<VisionSource, List<CVPipelineSettings>>();
for (var src : sources) {
var usbSrc = (USBCameraSource) src;
collectedSources.put(usbSrc, usbSrc.configuration.pipelineSettings);
logger.trace(
() -> {
return "Matched config for camera \""
+ src.getFrameProvider().getName()
+ "\" and loaded "
+ usbSrc.configuration.pipelineSettings.size()
+ " pipelines";
});
}
logger.info("Adding " + collectedSources.size() + " configs to VMM");
logger.info("Adding " + collectedSources.size() + " configs to VMM.");
VisionModuleManager.getInstance().addSources(collectedSources);
ConfigManager.getInstance().addCameraConfigurations(collectedSources);