@Override
		public void apply(@Nonnull LineContainer container, int paragraph) {
			if (paragraph >= infos.size())
				return;
			LogCallInfo info = infos.get(paragraph);
			Shape shape;
			switch (info.level) {
				case ERROR -> {
					if (info.throwable == null)
						shape = new Circle(SIZE, Color.RED);
					else {
						shape = new Polygon(TRIANGLE);
						shape.setFill(Color.RED);
					}
				}
				case WARN -> shape = new Circle(SIZE, Color.YELLOW);
				case INFO -> shape = new Circle(SIZE, Color.LIGHTBLUE);
				case DEBUG -> shape = new Circle(SIZE, Color.CORNFLOWERBLUE);
				case TRACE -> shape = new Circle(SIZE, Color.DODGERBLUE);
				default -> throw new IllegalArgumentException("Unsupported logging level");
			}
			shape.setOpacity(0.65);

			// Wrap and provide right-side padding to give the indicator space between it and the line no.
			HBox wrapper = new HBox(shape);
			wrapper.setAlignment(Pos.CENTER);
			wrapper.setPadding(PADDING);
			wrapper.setCursor(Cursor.HAND);
			if (info.throwable != null) {
				Tooltip tooltip = new Tooltip(StringUtil.traceToString(info.throwable));
				tooltip.setShowDelay(Duration.ZERO);
				Tooltip.install(wrapper, tooltip);
			}
			container.addHorizontal(wrapper);
		}
Pane for displaying logger calls.

@author Matt Coley
recaf-ui/src/main/java/software/coley/recaf/ui/pane/LoggingPane.java