@@ -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
}
@@ -334,6 +340,22 @@ defmodule Phoenix.Logger do
334
340
defp connect_result ( :ok ) , do: "CONNECTED TO "
335
341
defp connect_result ( :error ) , do: "REFUSED CONNECTION TO "
336
342
343
+ @ doc false
344
+ def phoenix_socket_drain ( _ , _ , % { log: false } , _ ) , do: :ok
345
+
346
+ def phoenix_socket_drain ( _ , % { count: count , total: total , index: index , rounds: rounds } , % { log: level } = meta , _ ) do
347
+ Logger . log ( level , fn ->
348
+ % { socket: socket , interval: interval } = meta
349
+
350
+ [
351
+ "DRAINING #{ count } of #{ total } total connection(s) for socket " ,
352
+ inspect ( socket ) ,
353
+ " every #{ interval } ms - " ,
354
+ "round #{ index } of #{ rounds } "
355
+ ]
356
+ end )
357
+ end
358
+
337
359
## Event: [:phoenix, :channel_joined]
338
360
339
361
@ doc false
0 commit comments