DHH is probably already aware of this but:
The new ActiveSupport::BufferedLogger is missing a few methods used in other places in Rails.
To verify this, in a console do:
a = Logger.new(STDOUT)
=> #<Logger:0x37eaca4 @default_formatter=#<Logger::Formatter:0x37eac7c @datetime_format=nil>, @progname=nil, @logdev=#<Logger::LogDevice:0x37eac54 @shift_size=nil, @shift_age=nil, @filename=nil, @mutex=#<Logger::LogDevice::LogDeviceMutex:0x37eac2c @mon_waiting_queue=[], @mon_entering_queue=[], @mon_count=0, @mon_owner=nil>, @dev=#<IO:0x22b7d0>>, @level=0, @formatter=nil>
b = ActiveSupport::BufferedLogger.new(STDOUT)
=> #<ActiveSupport::BufferedLogger:0x37d8658 @buffer="", @auto_flushing=true, @log=#<IO:0x22b7d0>, @level=0>
(a.methods.sort - Logger.parent.methods.sort) - (b.methods.sort - ActiveSupport::BufferedLogger.parent.methods.sort)
=> ["<<", "add", "around_debug", "around_error", "around_fatal", "around_info", "datetime_format", "datetime_format=", "formatter", "formatter=", "log", "old_datetime_format", "old_datetime_format=", "old_formatter", "progname", "progname=", "sev_threshold", "sev_threshold="]
Note the missing "add" method.
This is used in
actionpack/lib/action_controller/benchmarking.rb line 27
logger.add(log_level, "#{title} (#{'%.5f' % seconds})")
and
activerecord/lib/active_record/base.rb line 942
logger.add(log_level, "#{title} (#{'%.5f' % seconds})")
several of the other missing methods are used in Rails as well, like
logger.datetime_format
logger.formatter