Skip to main content

Logging

Intro​

Obviously, it's easiest to just System.out.println("Your message here") when debugging something. But when you have multiple modules, as we do on the robot, it helps to use a framework like SLF4J (Simple Logging Facade for Java).

For a tutorial on SLF4J that I didn't write, check out this one.

Logging on the robot​

Usually, there is a line at the beginning of most of our classes like this one:

private static final Logger log = LoggerFactory.getLogger(DriveBackAndShoot.class);

Where DriveBackAndShoot is replaced with the class that it's in.

For example, if that line was in the Arm subsystem class, it would become:

private static final Logger log = LoggerFactory.getLogger(Arm.class);

Then, elsewhere in the class, you'll be able to print to the console (the driver station) using any of these lines:

log.debug("ABC method was called with rotation={} degrees", theta.getDegrees())
log.info("Action took {}s to create", timer.get());
log.error("This action isn't supported yet")