You literally cannot log something that didn't happen. It is a physical impossibility.
What you are logging is just another type of failure - i.e. that a particular trigger was fired and the corresponding operation failed to execute. That is simply an error like any other.
Technically you're actually logging a pair of events: (a) the trigger and (b) the result of the operation. If the result log entry does not exist, then you infer a failure. This may seem pedantic, but it's actually an important distinction. You don't actually know for certain that the operation didn't execute; you just can't confirm that it did execute, and you're making an assumption.
There are two patterns for this, although I don't think they're officially-named "design patterns". They are the watchdog pattern, which repeatedly polls an endpoint to make sure that it is online and/or reporting some status, and also the heartbeat pattern, in which the endpoint itself is responsible for pushing status updates, and if the heartbeat monitor does not receive one, it logs an error.
Every instance of "negative logging" I've seen involves one of those patterns.
A: what happened? B: nothing happened A: and? B: that means it's baaaadddd...You shouldn't log something that didn't happen, that is called "liar logging"; what you can do is to log for a failure of your expectations. – Lie Ryan Jun 8 '11 at 2:01