@@ -28,9 +28,7 @@ defmodule Plug.Cowboy.Translator do
2828 { reason , { mod , :call , [ % Plug.Conn { } = conn , _opts ] } } ,
2929 _stack
3030 ) do
31- if non_500_exception? ( reason ) do
32- :skip
33- else
31+ if log_exception? ( reason ) do
3432 { :ok ,
3533 [
3634 inspect ( pid ) ,
@@ -41,6 +39,8 @@ defmodule Plug.Cowboy.Translator do
4139 conn_info ( min_level , conn )
4240 | Exception . format ( :exit , reason , [ ] )
4341 ] , conn: conn , crash_reason: reason , domain: [ :cowboy ] }
42+ else
43+ :skip
4444 end
4545 end
4646
@@ -57,11 +57,16 @@ defmodule Plug.Cowboy.Translator do
5757 ] , crash_reason: reason , domain: [ :cowboy ] }
5858 end
5959
60- defp non_500_exception? ( { % { __exception__: true } = exception , _ } ) do
61- Plug.Exception . status ( exception ) < 500
60+ defp log_exception? ( { % { __exception__: true } = exception , _ } ) do
61+ status_ranges =
62+ Application . get_env ( :plug_cowboy , :log_exceptions_with_status_code , [ 500 .. 599 ] )
63+
64+ status = Plug.Exception . status ( exception )
65+
66+ Enum . any? ( status_ranges , & ( status in & 1 ) )
6267 end
6368
64- defp non_500_exception ?( _ ) , do: false
69+ defp log_exception ?( _ ) , do: true
6570
6671 defp conn_info ( _min_level , conn ) do
6772 [ server_info ( conn ) , request_info ( conn ) ]
0 commit comments