Current section

27 Versions

Jump to

Compare versions

3 files changed
+28 additions
-22 deletions
  @@ -19,4 +19,4 @@
19 19 {<<"optional">>,false},
20 20 {<<"repository">>,<<"hexpm">>},
21 21 {<<"requirement">>,<<"~> 1.0">>}]]}.
22 - {<<"version">>,<<"0.4.1">>}.
22 + {<<"version">>,<<"0.4.2">>}.
  @@ -105,11 +105,9 @@ defmodule Ecto.DevLogger do
105 105 <<_prefix::utf8, index::binary>> = replacement ->
106 106 case Map.fetch(params_by_index, String.to_integer(index)) do
107 107 {:ok, value} ->
108 - [
109 - IO.ANSI.color(0, 2, 3),
110 - stringify_ecto_params(value, :root),
111 - apply(IO.ANSI, return_to_color, [])
112 - ]
108 + value
109 + |> stringify_ecto_params(:root)
110 + |> colorize(IO.ANSI.color(0, 2, 3), apply(IO.ANSI, return_to_color, []))
113 111
114 112 :error ->
115 113 replacement
  @@ -129,11 +127,9 @@ defmodule Ecto.DevLogger do
129 127 formatted_value =
130 128 case Map.fetch(params_by_index, index) do
131 129 {:ok, value} ->
132 - [
133 - IO.ANSI.color(0, 2, 3),
134 - stringify_ecto_params(value, :root),
135 - apply(IO.ANSI, return_to_color, [])
136 - ]
130 + value
131 + |> stringify_ecto_params(:root)
132 + |> colorize(IO.ANSI.color(0, 2, 3), apply(IO.ANSI, return_to_color, []))
137 133
138 134 :error ->
139 135 []
  @@ -170,7 +166,7 @@ defmodule Ecto.DevLogger do
170 166 defp log_repo(repo, color, config) do
171 167 Keyword.get(config, :log_repo_name, false)
172 168 |> case do
173 - true -> [" repo=", IO.ANSI.blue(), inspect(repo), apply(IO.ANSI, color, [])]
169 + true -> [" repo=", colorize(inspect(repo), IO.ANSI.blue(), apply(IO.ANSI, color, []))]
174 170 _ -> ""
175 171 end
176 172 end
  @@ -178,7 +174,7 @@ defmodule Ecto.DevLogger do
178 174 defp log_ok_source(nil, _color), do: ""
179 175
180 176 defp log_ok_source(source, color),
181 - do: [" source=", IO.ANSI.blue(), inspect(source), apply(IO.ANSI, color, [])]
177 + do: [" source=", colorize(inspect(source), IO.ANSI.blue(), apply(IO.ANSI, color, []))]
182 178
183 179 defp log_time(label, measurements, key, force, color) do
184 180 case measurements do
  @@ -191,7 +187,7 @@ defmodule Ecto.DevLogger do
191 187
192 188 case duration_color(ms) do
193 189 nil -> line
194 - duration_color -> [duration_color, line, apply(IO.ANSI, color, [])]
190 + duration_color -> colorize(line, duration_color, apply(IO.ANSI, color, []))
195 191 end
196 192 else
197 193 []
  @@ -204,13 +200,15 @@ defmodule Ecto.DevLogger do
204 200
205 201 @colorize_step 25
206 202 defp duration_color(duration) do
207 - # don't colorize if duration < @colorize_step
208 - duration = duration - @colorize_step
203 + if IO.ANSI.enabled?() do
204 + # don't colorize if duration < @colorize_step
205 + duration = duration - @colorize_step
209 206
210 - if duration > 0 do
211 - # then every @colorize_step ms apply color from RGB(5, 5, 0) to RGB(5, 0, 0) (simple gradient from yellow to red)
212 - green = 5 - min(div(floor(duration), @colorize_step), 5)
213 - IO.ANSI.color(5, green, 0)
207 + if duration > 0 do
208 + # then every @colorize_step ms apply color from RGB(5, 5, 0) to RGB(5, 0, 0) (simple gradient from yellow to red)
209 + green = 5 - min(div(floor(duration), @colorize_step), 5)
210 + IO.ANSI.color(5, green, 0)
211 + end
214 212 end
215 213 end
216 214
  @@ -224,6 +222,14 @@ defmodule Ecto.DevLogger do
224 222 defp sql_color("commit" <> _), do: :magenta
225 223 defp sql_color(_), do: :default_color
226 224
225 + defp colorize(term, color, return_to_color) do
226 + if IO.ANSI.enabled?() do
227 + [color, term, return_to_color]
228 + else
229 + term
230 + end
231 + end
232 +
227 233 defp stringify_ecto_params(nil, _level), do: "NULL"
228 234
229 235 defp stringify_ecto_params(binding, _level)
  @@ -317,7 +323,7 @@ defmodule Ecto.DevLogger do
317 323 with [_ | _] <- stacktrace,
318 324 {module, function, arity, info} <- last_non_ecto(Enum.reverse(stacktrace), repo, nil) do
319 325 [
320 - IO.ANSI.light_black(),
326 + if(IO.ANSI.enabled?(), do: IO.ANSI.light_black(), else: ""),
321 327 ?\n,
322 328 "↳ ",
323 329 Exception.format_mfa(module, function, arity),
  @@ -1,6 +1,6 @@
1 1 defmodule Ecto.DevLogger.MixProject do
2 2 use Mix.Project
3 - @version "0.4.1"
3 + @version "0.4.2"
4 4 @source_url "https://github.com/fuelen/ecto_dev_logger"
5 5
6 6 def project do