@@ -58,6 +58,11 @@ defmodule Phoenix.Logger do
58
58
* Metadata: `%{endpoint: atom, transport: atom, params: term, connect_info: map, vsn: binary, user_socket: atom, result: :ok | :error, serializer: atom, log: Logger.level | false}`
59
59
* Disable logging: `use Phoenix.Socket, log: false` or `socket "/foo", MySocket, websocket: [log: false]` in your endpoint
60
60
61
+ * `[:phoenix, :socket_drain]` - dispatched by `Phoenix.Socket` when using the `:drainer` option
62
+ * Measurement: `%{count: integer, total: integer, index: integer, rounds: integer}`
63
+ * Metadata: `%{endpoint: atom, socket: atom, intervasl: integer, log: Logger.level | false}`
64
+ * Disable logging: `use Phoenix.Socket, log: false` in your endpoint or pass `:log` option in the `:drainer` option
65
+
61
66
* `[:phoenix, :channel_joined]` - dispatched at the end of a channel join
62
67
* Measurement: `%{duration: native_time}`
63
68
* Metadata: `%{result: :ok | :error, params: term, socket: Phoenix.Socket.t}`
@@ -134,6 +139,7 @@ defmodule Phoenix.Logger do
134
139
[ :phoenix , :router_dispatch , :start ] => & __MODULE__ . phoenix_router_dispatch_start / 4 ,
135
140
[ :phoenix , :error_rendered ] => & __MODULE__ . phoenix_error_rendered / 4 ,
136
141
[ :phoenix , :socket_connected ] => & __MODULE__ . phoenix_socket_connected / 4 ,
142
+ [ :phoenix , :socket_drain ] => & __MODULE__ . phoenix_socket_drain / 4 ,
137
143
[ :phoenix , :channel_joined ] => & __MODULE__ . phoenix_channel_joined / 4 ,
138
144
[ :phoenix , :channel_handled_in ] => & __MODULE__ . phoenix_channel_handled_in / 4
139
145
}
@@ -339,6 +345,22 @@ defmodule Phoenix.Logger do
339
345
defp connect_result ( :ok ) , do: "CONNECTED TO "
340
346
defp connect_result ( :error ) , do: "REFUSED CONNECTION TO "
341
347
348
+ @ doc false
349
+ def phoenix_socket_drain ( _ , _ , % { log: false } , _ ) , do: :ok
350
+
351
+ def phoenix_socket_drain ( _ , % { count: count , total: total , index: index , rounds: rounds } , % { log: level } = meta , _ ) do
352
+ Logger . log ( level , fn ->
353
+ % { socket: socket , interval: interval } = meta
354
+
355
+ [
356
+ "DRAINING #{ count } of #{ total } total connection(s) for socket " ,
357
+ inspect ( socket ) ,
358
+ " every #{ interval } ms - " ,
359
+ "round #{ index } of #{ rounds } "
360
+ ]
361
+ end )
362
+ end
363
+
342
364
## Event: [:phoenix, :channel_joined]
343
365
344
366
@ doc false
0 commit comments