I'm sorry, I should have made clear that from the caller's perspective, nothing changes, so we don't have to change any call to $self->log(). See the attached patch for an example implementation (which nicely indents the related log entries as a side effect).
Code speaks a thousand words.
I could use a hash instead, but it really doesn't aid in clarity much, since only the logging plugin itself cares, and we can simply document the parameters that are passed. And a hash is going to always be slower, not that we don't pay that cost quite a lot already.
I'm very close to saying: "We should have three logging calls that each have their own parameter set". But that's really the same as saying: "use named parameters" (i.e. a hash).
But looking at the 2 places you had to change, it's really hard to argue against this change. Worst case we just change it back.
So, +0.9.
-R