From a0be9fe272922fe151e5e42e4ebc464c19fb5c50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 15 Aug 2014 18:29:45 +0200 Subject: [PATCH] Improve Logger formatter defaults * Make colors in the docs consistent with the ones in the code * Add new lines before and after each message --- lib/logger/lib/logger.ex | 4 ++-- lib/logger/lib/logger/backends/console.ex | 4 ++-- lib/logger/lib/logger/formatter.ex | 2 +- lib/logger/test/logger/backends/console_test.exs | 4 ++-- lib/logger/test/logger/error_handler_test.exs | 16 ++++++++-------- lib/logger/test/logger/formatter_test.exs | 2 +- lib/logger/test/test_helper.exs | 2 +- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/logger/lib/logger.ex b/lib/logger/lib/logger.ex index 20f46ea120..b4cf15ca7f 100644 --- a/lib/logger/lib/logger.ex +++ b/lib/logger/lib/logger.ex @@ -145,7 +145,7 @@ defmodule Logger do * `:enabled` - boolean value that allows for switching the coloring on and off. Defaults to: `IO.ANSI.enabled?` - * `:debug` - color for debug messages. Defaults to: `:magenta` + * `:debug` - color for debug messages. Defaults to: `:cyan` * `:info` - color for info messages. Defaults to: `:normal` @@ -159,7 +159,7 @@ defmodule Logger do `config/config.exs` file: config :logger, :console, - format: "$date $time [$level] $metadata$message\n", + format: "\n$date $time [$level] $metadata$message", metadata: [:user_id] You can read more about formatting in `Logger.Formatter`. diff --git a/lib/logger/lib/logger/backends/console.ex b/lib/logger/lib/logger/backends/console.ex index 95063407ac..dc04c5602d 100644 --- a/lib/logger/lib/logger/backends/console.ex +++ b/lib/logger/lib/logger/backends/console.ex @@ -54,9 +54,9 @@ defmodule Logger.Backends.Console do defp configure_colors(console) do colors = Keyword.get(console, :colors, []) debug = Keyword.get(colors, :debug, :cyan) - info = Keyword.get(colors, :info, :green) + info = Keyword.get(colors, :info, :normal) warn = Keyword.get(colors, :warn, :yellow) - error = Keyword.get(colors, :error, :magenta) + error = Keyword.get(colors, :error, :red) enabled = Keyword.get(colors, :enabled, IO.ANSI.enabled?) %{debug: debug, info: info, warn: warn, error: error, enabled: enabled} end diff --git a/lib/logger/lib/logger/formatter.ex b/lib/logger/lib/logger/formatter.ex index 5373b5b4b5..b7117dfc41 100644 --- a/lib/logger/lib/logger/formatter.ex +++ b/lib/logger/lib/logger/formatter.ex @@ -41,7 +41,7 @@ defmodule Logger.Formatter do """ @valid_patterns [:time, :date, :message, :level, :node, :metadata, :levelpad] - @default_pattern "$time $metadata[$level] $levelpad$message\n" + @default_pattern "\n$time $metadata[$level] $levelpad$message\n" @doc ~S""" Compiles a format string into an array that the `format/5` can handle. diff --git a/lib/logger/test/logger/backends/console_test.exs b/lib/logger/test/logger/backends/console_test.exs index 3a9e3b041b..3f6af77f95 100644 --- a/lib/logger/test/logger/backends/console_test.exs +++ b/lib/logger/test/logger/backends/console_test.exs @@ -67,7 +67,7 @@ defmodule Logger.Backends.ConsoleTest do assert capture_log(fn -> Logger.info("hello") - end) == IO.ANSI.green() <> "hello" <> IO.ANSI.reset() + end) == IO.ANSI.normal() <> "hello" <> IO.ANSI.reset() Logger.configure_backend(:console, [colors: [info: :cyan]]) @@ -87,7 +87,7 @@ defmodule Logger.Backends.ConsoleTest do assert capture_log(fn -> Logger.error("hello") - end) == IO.ANSI.magenta() <> "hello" <> IO.ANSI.reset() + end) == IO.ANSI.red() <> "hello" <> IO.ANSI.reset() Logger.configure_backend(:console, [colors: [error: :cyan]]) diff --git a/lib/logger/test/logger/error_handler_test.exs b/lib/logger/test/logger/error_handler_test.exs index 1dfd10ceb4..dec1deced0 100644 --- a/lib/logger/test/logger/error_handler_test.exs +++ b/lib/logger/test/logger/error_handler_test.exs @@ -7,48 +7,48 @@ defmodule Logger.ErrorHandlerTest do wait_for_handler(:error_logger, Logger.ErrorHandler) end) =~ "[error] GenEvent handler Logger.ErrorHandler installed at :error_logger\n" <> "** (exit) an exception was raised:" - assert error_log(:info_msg, "~p~n", [:hello]) =~ msg("[info] :hello\n") + assert error_log(:info_msg, "~p~n", [:hello]) =~ msg("[info] :hello") end test "survives after Logger exit" do Process.whereis(Logger) |> Process.exit(:kill) wait_for_logger() wait_for_handler(:error_logger, Logger.ErrorHandler) - assert error_log(:info_msg, "~p~n", [:hello]) =~ msg("[info] :hello\n") + assert error_log(:info_msg, "~p~n", [:hello]) =~ msg("[info] :hello") end test "formats error_logger info message" do assert error_log(:info_msg, "hello", []) =~ msg("[info] hello") - assert error_log(:info_msg, "~p~n", [:hello]) =~ msg("[info] :hello\n") + assert error_log(:info_msg, "~p~n", [:hello]) =~ msg("[info] :hello") end test "formats error_logger info report" do assert error_log(:info_report, "hello") =~ msg("[info] \"hello\"") - assert error_log(:info_report, :hello) =~ msg("[info] :hello\n") + assert error_log(:info_report, :hello) =~ msg("[info] :hello") assert error_log(:info_report, :special, :hello) == "" end test "formats error_logger error message" do assert error_log(:error_msg, "hello", []) =~ msg("[error] hello") - assert error_log(:error_msg, "~p~n", [:hello]) =~ msg("[error] :hello\n") + assert error_log(:error_msg, "~p~n", [:hello]) =~ msg("[error] :hello") end test "formats error_logger error report" do assert error_log(:error_report, "hello") =~ msg("[error] \"hello\"") - assert error_log(:error_report, :hello) =~ msg("[error] :hello\n") + assert error_log(:error_report, :hello) =~ msg("[error] :hello") assert error_log(:error_report, :special, :hello) == "" end test "formats error_logger warning message" do # Warnings by default are logged as errors by Erlang assert error_log(:warning_msg, "hello", []) =~ msg("[error] hello") - assert error_log(:warning_msg, "~p~n", [:hello]) =~ msg("[error] :hello\n") + assert error_log(:warning_msg, "~p~n", [:hello]) =~ msg("[error] :hello") end test "formats error_logger warning report" do # Warnings by default are logged as errors by Erlang assert error_log(:warning_report, "hello") =~ msg("[error] \"hello\"") - assert error_log(:warning_report, :hello) =~ msg("[error] :hello\n") + assert error_log(:warning_report, :hello) =~ msg("[error] :hello") assert error_log(:warning_report, :special, :hello) == "" end diff --git a/lib/logger/test/logger/formatter_test.exs b/lib/logger/test/logger/formatter_test.exs index 0863b36b07..7c40b51cdf 100644 --- a/lib/logger/test/logger/formatter_test.exs +++ b/lib/logger/test/logger/formatter_test.exs @@ -12,7 +12,7 @@ defmodule Logger.FormatterTest do test "compile/1 with nil" do assert compile(nil) == - [:time, " ", :metadata, "[", :level, "] ", :levelpad, :message, "\n"] + ["\n", :time, " ", :metadata, "[", :level, "] ", :levelpad, :message, "\n"] end test "compile/1 with str" do diff --git a/lib/logger/test/test_helper.exs b/lib/logger/test/test_helper.exs index 3a347070a5..c080a69608 100644 --- a/lib/logger/test/test_helper.exs +++ b/lib/logger/test/test_helper.exs @@ -12,7 +12,7 @@ defmodule Logger.Case do end def msg(msg) do - ~r/^\d\d\:\d\d\:\d\d\.\d\d\d #{Regex.escape(msg)}$/ + ~r/\d\d\:\d\d\:\d\d\.\d\d\d #{Regex.escape(msg)}/ end def wait_for_handler(manager, handler) do