We log a lot of information to both the console (riolog) and to a disk file on the RoboRio. This has worked perfectly in the past. Now we are seeing plenty of cases where expected output does not appear in the riolog but does appear in the log file. The disk log is complete but the riolog is randomly missing output the is being generated by our code. We know the way the riolog is handled has changed this year (DS required to be connected to the robot in order for riolog to work) but have not located any doc about what exactly the changes were and why.
The change was to move from UDP to TCP. The old UDP netconsole sent a packet for nearly every line of output, and thus took significant airtime on wireless (we could visually tell in looking at airtime on the field when a robot had a lot of console print statements). The new netconsole uses a TCP connection provided by the NetComm daemon. It’s also a tagged stream so error messages can be separated from print statements, etc (basically it brings to riolog the same features that are on the DS console view).
The behavior you’re seeing is probably due to the fact there’s a FIFO buffer in NetComm and you’re sending faster than it sends over the network. What kind of information are you logging? You might want to look into alternative ways to log that information, for example using NetworkTables to send the data and Shuffleboard to visualize and log it.
Thanks for the explanation. Our code is extensively instrumented and we record it all on the rio in a file for after match analysis. Watching it on the riolog is just handy during development since you are able to watch it “live”.