@@ -168,22 +168,42 @@ defmodule Logger.Formatter do
168
168
defp levelpad ( :warn ) , do: " "
169
169
defp levelpad ( :error ) , do: ""
170
170
171
- defp metadata ( [ { :report_cb , _ } | metadata ] ) , do: metadata ( metadata )
172
- defp metadata ( [ { :time , _ } | metadata ] ) , do: metadata ( metadata )
173
- defp metadata ( [ { :gl , _ } | metadata ] ) , do: metadata ( metadata )
174
- defp metadata ( [ { :crash_reason , _ } | metadata ] ) , do: metadata ( metadata )
175
- defp metadata ( [ { :ancestors , _ } | metadata ] ) , do: metadata ( metadata )
176
- defp metadata ( [ { :callers , _ } | metadata ] ) , do: metadata ( metadata )
177
- defp metadata ( [ { _ , nil } | metadata ] ) , do: metadata ( metadata )
178
-
179
171
defp metadata ( [ { key , value } | metadata ] ) do
180
- [ to_string ( key ) , ?= , metadata ( key , value ) , ?\s | metadata ( metadata ) ]
172
+ if formatted = metadata ( key , value ) do
173
+ [ to_string ( key ) , ?= , formatted , ?\s | metadata ( metadata ) ]
174
+ else
175
+ metadata ( metadata )
176
+ end
181
177
end
182
178
183
179
defp metadata ( [ ] ) do
184
180
[ ]
185
181
end
186
182
183
+ defp metadata ( :time , _ ) , do: nil
184
+ defp metadata ( :gl , _ ) , do: nil
185
+
186
+ defp metadata ( _ , nil ) , do: nil
187
+ defp metadata ( _ , string ) when is_binary ( string ) , do: string
188
+ defp metadata ( _ , integer ) when is_integer ( integer ) , do: Integer . to_string ( integer )
189
+ defp metadata ( _ , float ) when is_float ( float ) , do: Float . to_string ( float )
190
+ defp metadata ( _ , pid ) when is_pid ( pid ) , do: :erlang . pid_to_list ( pid )
191
+
192
+ defp metadata ( _ , atom ) when is_atom ( atom ) do
193
+ case Atom . to_string ( atom ) do
194
+ "Elixir." <> rest -> rest
195
+ "nil" -> ""
196
+ binary -> binary
197
+ end
198
+ end
199
+
200
+ defp metadata ( _ , ref ) when is_reference ( ref ) do
201
+ '#Ref' ++ rest = :erlang . ref_to_list ( ref )
202
+ rest
203
+ end
204
+
205
+ defp metadata ( :file , file ) when is_list ( file ) , do: file
206
+
187
207
defp metadata ( :domain , [ head | tail ] ) when is_atom ( head ) do
188
208
Enum . map_intersperse ( [ head | tail ] , ?. , & Atom . to_string / 1 )
189
209
end
@@ -198,22 +218,5 @@ defmodule Logger.Formatter do
198
218
Exception . format_mfa ( mod , fun , arity )
199
219
end
200
220
201
- defp metadata ( _ , pid ) when is_pid ( pid ) do
202
- :erlang . pid_to_list ( pid )
203
- end
204
-
205
- defp metadata ( _ , ref ) when is_reference ( ref ) do
206
- '#Ref' ++ rest = :erlang . ref_to_list ( ref )
207
- rest
208
- end
209
-
210
- defp metadata ( _ , atom ) when is_atom ( atom ) do
211
- case Atom . to_string ( atom ) do
212
- "Elixir." <> rest -> rest
213
- "nil" -> ""
214
- binary -> binary
215
- end
216
- end
217
-
218
- defp metadata ( _ , other ) , do: to_string ( other )
221
+ defp metadata ( _ , _ ) , do: nil
219
222
end
0 commit comments