What I do, and I'm sure it's pretty much the same everywhere, is use Counters, Latch, Set, RTOs, etc. Anything that is not going to automatically reset itself once false.
Say I dunno what momentary bit is causing the fault to happen, because by the time I get to check it, it's already happened and gone. I just have the bits that I think the problem is each latch (Set) a seperate bit. This lets me see that yes, that bit was true during this time period, even if it was only true for 10milli seconds.
I'll use counters in the program to catch the number of times something happens during an offshift, since operators rarely communicate their issues across shifts, and it's easier for me to have the PLC tell me exactly how many times something occured.
I'll use retentative timers if I feel like knowing for how long certain things are happening, like an analog input inexplicably falling to 0, even though everything appears fine, for only a few milliseconds.