Heartbeats failing or timing out are a very common source of build failures. Since they only happen every 2 seconds, logging 1-4 messages per heartbeat will not explode the number of log messages we have.
Currently we only log very long running heartbeats or at higher log levels. At the maximum, this would be when a heartbeat is sent, when it is received, when the response is sent, and when the response is received, though all four of these may not be necessary. Logging when we cancel heartbeats may also be worthwhile.
This can also be done to a special log component so that it's easy to turn on/off and easy to filter out in log readers. Also some of the log messages in this component could be at higher log levels than others.