diff options
author | Genadi Samokovarov <gsamokovarov@gmail.com> | 2016-10-28 22:54:16 +0300 |
---|---|---|
committer | Genadi Samokovarov <gsamokovarov@gmail.com> | 2016-10-28 23:53:06 +0300 |
commit | f99c37583dab9e1a6d8a67a407def0b2408df706 (patch) | |
tree | 8f91afe37119049145d6b1efef48caab1c07912d /actionpack/lib | |
parent | 83776676e54b387fc52081ff31cfd7710bae9e03 (diff) | |
download | rails-f99c37583dab9e1a6d8a67a407def0b2408df706.tar.gz rails-f99c37583dab9e1a6d8a67a407def0b2408df706.tar.bz2 rails-f99c37583dab9e1a6d8a67a407def0b2408df706.zip |
Support plain loggers in DebugExceptions
I have been seeing people setting `Logger` instances for `config.logger`
and it blowing up on `rails/web-console` usage.
Now, I doubt many folks are manually setting `ActionView::Base.logger`,
but given that `DebugExceptions` is running in a pretty fragile
environment already, having it crash (and being silent) in those cases
can be pretty tricky to trace down.
I'm proposing we verify whether the `ActionView::Base.logger` supports
silencing before we try to do it, to save us the headache of tracing it
down.
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_dispatch/middleware/debug_exceptions.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb b/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb index ee644f41c8..1a9018fe0c 100644 --- a/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb +++ b/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb @@ -38,7 +38,9 @@ module ActionDispatch end def render(*) - if logger = ActionView::Base.logger + logger = ActionView::Base.logger + + if logger && logger.respond_to?(:silence) logger.silence { super } else super |