Если вы посмотрите на источник класса BufferedLogger в ActiveSupport, вы увидите, что вторым аргументом является 'progname'.Это используется только в том случае, если первый аргумент равен nil, и вы либо дали ему блок, либо блок возвращает неверное значение.
По сути, вы не можете использовать второй параметр для вывода дополнительных вещей.
То, что вы хотите сделать, является чем-то более похожим на:
begin
raise
rescue => e
logger.error e.message
logger.error e.backtrace.join("\n")
end
В зависимости от того, как у вас есть настройки логирования, может быть лучше перебрать каждую строку обратной трассировки и распечататьотдельно, поскольку некоторые регистраторы не выводят символы новой строки, в этом случае вы должны сделать что-то вроде:
begin
raise
rescue => e
logger.error e.message
e.backtrace.each { |line| logger.error line }
end