I do the same thing: "::DataMapper.logger = Logger.new(...)" (DM
0.10x) before calling ::DataMapper::setup, in order to catch all
logging that it might emit.
I think the "push/<<" Logger methods you're looking for are in Extlib
(which DM uses), which I believe was originally copied from Merb.
Some of the actual log emissions might also be happening in
DataObjects (haven't looked).
cheers,
--jordan