Foolishly, when working on a recent gateway implementation (usaepay) I wrote a custom logging function to keep track of what was happening.
Turns out there's already something there to do it
Mage_Payment_Method_Abstract::_debug($data);
If you want to call it from outside the payment_method inheritance tree use
Mage_Payment_Method_Abstract::debugData($data);
In both cases your payment method needs to have its debug config setting enabled e.g. for my usaepay module
echo Mage::getStoreConfig('payment/usaepay/debug');
>> 1