Every timer should be given a unique Id and this should be output in the log. This will allow start/end messages to be correlated. It can be achieved simply by using an AtomicUsize.
fn new() -> Self {
static ID: AtomicUsize = AtomicUsize::new(0);
Self {
id: ID.fetch_add(1, Ordering::SeqCst)
}
}