Skip to content

FAQ

What’s the difference between DogLog and other logging libraries?

Within the FRC software ecosystem, there are three main solutions for logging: DogLog, AdvantageKit, and Epilogue.

Here’s a quick breakdown of the differences between each library:

DogLogAdvantageKitEpilogue
CreatorTeam 581Team 6328WPILib
Logging patternDogLog.log()IO interfaces and annotationsAnnotations
Use caseSimplest logging possibleReplaying logs in simulationLog every public or private field in a class
Customizable log destinationsYes (NT and datalog)Yes (NT and datalog)No (NT always on, datalog can be toggled)
MultithreadingYes (log processing thread)Yes (log processing thread)No
Tunable valuesYesYesNo
Supported languageJavaJavaJava

One thing to note is that while it may technically be possible to use DogLog in combination with other logging libraries, this is definitely not recommended. You will almost certainly encounter bugs or other compatibility issues as a result.

Who uses DogLog?

DogLog is used by teams across the FRC community for a variety of purposes. Here’s a selection of DogLog users with open-source robot code you can review for inspiration:

And of course,

What should I log?

It can be tempting to simply throw every possible piece of data at DogLog, but often times this causes more problems than it solves. While DogLog is highly optimized for performant logging, there is a point where the roboRIO simply can’t keep up.

Take a look at all the fields you are logging, and think about whether or not they’re actually useful for your team. Here’s a few examples:

  • Several debug logs added when first doing robot bring-up, which aren’t relevant anymore
  • Logging more values than necessary for every motor (ex. temperature, stator current, supply current, applied voltage, velocity, etc.)
  • Capturing all NetworkTables values, instead of just manually logging the handful of relevant fields

How can I get help with DogLog?

Feel free to open a GitHub issue if you’ve found a bug or there’s a feature request you’d like to see.

If you have questions about DogLog, how to use it, or anything else, you can start a GitHub discussion or create a reply on the DogLog Chief Delphi thread.